Syntastic + Django
Я только начал развиваться на Django, и тогда я подумал, что использовать Syntastic синтаксическую проверку было бы хорошей идеей.
Проблема в том, что она жалуется на то, что некоторые вещи ошибочны, когда они фактически не являются.
Примеры:
-
Для
from django.core.urlresolvers import reverse
Я получаю:
error| [F0401] Unable to import 'django.core.urlresolvers'
-
Для
amount = self.sale_set.filter(date__year=year).aggregate(sum=Sum('amount'))["sum"]
Я получаю (где self
является Album
)
error| [E1101, Album.get_sales_total] Instance of 'Album' has no 'sale_set' member
Этот код отлично работает даже с этими "ошибками", но как я могу заставить Syntastic правильно вести себя?
Ответы
Ответ 1
ответ на @supervacuo ответ:
есть способ заставить это работать для синтаксиса, и это довольно просто, если не легко понять кого-то, незнакомого с синтаксическими параметрами (например, я):
в вашем .vimrc, добавьте эту строку:
let g:syntastic_python_pylint_args = "--load-plugins pylint_django"
конечно, это требует установки pylint-django
в вашей среде
Ответ 2
Оба этих сообщения приходят от pylint
- вы можете видеть более полные объяснения с помощью pylint --help-msg=$ID
или на http://pylint-messages.wikidot.com/.
Вы можете отключить проверки, например. from django.core.urlresolvers import reverse
# pylint: disable=F0401
, но это довольно утомительно.
Там плагин pylint для Django, который определенно исправит ваш E1101 (и я надеюсь, что F0401 тоже). Возможно, вам стоит установить плагин и настроить Syntastic для его использования?