Синтаксический + Джанго

Я только начал разработку на Django, а потом подумал, что было бы неплохо использовать проверку синтаксического синтаксиса. .

Проблема в том, что он жалуется на то, что что-то не так, хотя на самом деле это не так.

Примеры:

  1. Для

    from django.core.urlresolvers import reverse
    

    Я получил:

    error| [F0401] Unable to import 'django.core.urlresolvers'
    
  2. Для

    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 вести себя правильно?


person Falassion    schedule 22.08.2012    source источник
comment
Тогда это должен быть отчет об ошибке для разработчиков Syntastic.   -  person Chris Pratt    schedule 22.08.2012
comment
Скорее всего, ошибка в flake8, pyflakes или pylint, поскольку они являются средствами проверки синтаксиса по умолчанию, используемыми Syntastic.   -  person Matt Briançon    schedule 22.08.2012


Ответы (2)


копируя ответ @supervacuo:

есть способ заставить это работать для синтаксиса, и это довольно просто, если не легко понять для кого-то, не знакомого с синтаксическими параметрами (например, для меня):

в вашем .vimrc добавьте эту строку:

let g:syntastic_python_pylint_args = "--load-plugins pylint_django"

конечно, это требует установки pylint-django в вашей среде

person nthall    schedule 22.10.2015

Оба этих сообщения исходят от pylint — вы можете увидеть более полные объяснения с помощью pylint --help-msg=$ID или на http://pylint-messages.wikidot.com/.

Вы можете отключить проверки с помощью например, from django.core.urlresolvers import reverse # pylint: disable=F0401, но это довольно быстро надоедает.

Существует плагин Pylint для Django, который определенно исправит ваш E1101 (и, надеюсь, F0401 тоже). Может быть, попробовать установить плагин и настроить Syntastic для его использования?

person supervacuo    schedule 20.01.2014
comment
Хорошее предложение, но мне не помогло. По крайней мере, в рамках virtualenv. - person logc; 17.09.2015