2012-08-22 7 views
11

Po prostu zacząłem pracować nad Django, a potem pomyślałem, że używanie go to dobry pomysł.Syntastic + Django

Problem polega na tym, że skarży się na pewne rzeczy, które są złe, podczas gdy w rzeczywistości tak nie jest.

Przykłady:

  1. Dla

    from django.core.urlresolvers import reverse 
    

    uzyskać:

    error| [F0401] Unable to import 'django.core.urlresolvers' 
    
  2. Dla

    amount = self.sale_set.filter(date__year=year).aggregate(sum=Sum('amount'))["sum"] 
    

    dostać (gdzie self jest Album)

    error| [E1101, Album.get_sales_total] Instance of 'Album' has no 'sale_set' member 
    

Ten kod działa doskonale nawet z tych „błędów”, ale w jaki sposób mogę dokonać Syntastic zachowywać się poprawnie?

+0

Powinien to być raport o błędzie twórców Syntastic. –

+1

Najprawdopodobniej błąd w flake8, pyflakes lub pylint, ponieważ są one domyślnymi kontrolerami składni używanymi przez Syntastic. –

Odpowiedz

4

Obie te wiadomości pochodzą z pylint - można zobaczyć pełniejsze wyjaśnienia z pylint --help-msg=$ID, lub na http://pylint-messages.wikidot.com/.

Możesz wyłączyć kontrole za pomocą , np.from django.core.urlresolvers import reverse # pylint: disable=F0401, ale robi się to dość szybko.

Jest pylint plugin for Django, który zdecydowanie naprawi Twój E1101 (i mam nadzieję, że F0401 też). Może chcesz zainstalować wtyczkę i skonfigurować Syntastic, aby z niej korzystać?

+0

Dobra sugestia, ale nie dla mnie. Przynajmniej w virtualenv. – logc

5

piggybacking na @ supervacuo za odpowiedź:

istnieje sposób, aby uzyskać to działa na syntastic i to dość proste, jeśli nie jest łatwo wymyślić dla kogoś nieznanego z opcji syntastic (jak, powiedzmy, ME):

w .vimrc, dodaj linię:

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

oczywiście, to wymaga pylint-django być zainstalowany w środowisku

Powiązane problemy