def index(request):
latest_question_list = Question.objects.all().order_by('-pub_date')[:5]
template = loader.get_template('polls/index.html')
context = {'latest_question_list':latest_question_list}
return HttpResponse(template.render(context, request))
Pierwsza linia tej funkcji wyświetla błąd Question.objects.all()
:
E1101: Klasa „Pytanie” nie ma elementu „element” obiektów
Postępuję zgodnie z samouczkiem dokumentacji Django i mają ten sam kod, który działa.
Próbowałem wywołać instancję.
Question = new Question()
and using MyModel.objects.all()
Również mój models.py
kod dla tej klasy to ...
class Question(models.Model):
question_text = models.CharField(max_length = 200)
pub_date = models.DateTimeField('date published')
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
def __str__(self):
return self.question_text
Bez skutku nadal mam ten błąd.
Czytałem o pylincie i prowadziłem to ...
pylint --load-plugins pylint_django
Co nie pomogło, nawet jeśli plik readme na githubie mówi ...
Zapobiega ostrzeżeniom o atrybutach generowanych przez Django, takich jak Model.objects lub Views.request.
Uruchomiłem polecenie w moim virtualenv, ale nic.
Więc każda pomoc byłaby świetna.
python
django
django-views
buuencrypted
źródło
źródło
pylint --generated-members=objects
Manager
instancji wmodels.py
pliku. Więcej informacji znajdziesz w dokumentacji django .Odpowiedzi:
Zainstaluj,
pylint-django
używającpip
w następujący sposóbNastępnie w programie Visual Studio Code goto: User Settings ( Ctrl+ ,or File> Preferences> Settings if available) Wpisz następujące informacje (zwróć uwagę na nawiasy klamrowe, które są wymagane dla niestandardowych ustawień użytkownika w VSC):
źródło
.pylintrc
pliku takim jak ten:load-plugins=pylint_django
W ten sposób zostanie ona również odebrana przez CLI, więc działałaby w ustawieniu ciągłej integracji.[pylint] C0111:Missing module docstring
błądOdpowiedź @ tieuminh2510 jest doskonała. Ale w nowszych wersjach VSC nie znajdziesz opcji edycji lub wklejania tego polecenia w Ustawieniach użytkownika . Teraz w nowszej wersji, aby dodać ten kod, wykonaj następujące kroki :
Wewnątrz pierwsze szelki kręcone. Upewnij się, że pylint-django .
Mam nadzieję, że to pomoże!
źródło
pip install pylint-django
. Jeśli rozszerzenie nie jest zainstalowane, wydaje się, że ta zmiana ustawień nie powiedzie się po cichu, zrywając wszystkie problemy.Missing module docstringpylint(missing-module-docstring)
. Co można z tym zrobić?Zainstaluj pylint Django:
ctrl + shift + p> Preferences: Skonfiguruj ustawienia specyficzne dla języka> Python
Plik settings.json dostępny dla języka Python powinien wyglądać jak poniżej:
źródło
Oto odpowiedź. Pobrane z mojego posta na Reddicie ... https://www.reddit.com/r/django/comments/6nq0bq/class_question_has_no_objects_member/
źródło
objects = models.Manager()
w klasie modelek zrobiłem to za mnie w VS Code. Dzięki.Wypróbowałem wszystkie możliwe rozwiązania, ale niestety moje ustawienia Vscode nie zmieniają ścieżki lintera. Tak więc postanowiłem zbadać ustawienia Vscode w ustawieniach> Ustawienia użytkownika> python . Znajdź Linting: Pylint Path i zmień go na „pylint_django”. Nie zapomnij zmienić lintera na „pylint_django” w ustawieniach> Ustawienia użytkownika> konfiguracja pythona z „pyLint” na „pylint_django”.
źródło
AKTUALIZACJA DLA VS KOD 1.40.0
Po zrobieniu:
Kliknij ten link: https://code.visualstudio.com/docs/python/linting#_default-pylint-rules
Zauważ, że sposobem
pylint
na uwzględnieniepylint-django
jest określenie:w
settings.json
Kodeksie VS.Ale potem zauważysz wiele nowych błędów lintingu. Następnie przeczytaj, co tu napisano:
To, co zrobiłem, to utworzenie
.pylintrc
pliku zgodnie z opisem w linku, a następnie skonfigurowanie następujących parametrów w pliku (pozostawiając resztę pliku nietkniętą):Teraz
pylint
działa zgodnie z oczekiwaniami.źródło
Możesz zmienić linter dla rozszerzenia Python dla Visual Studio Code.
W VS otwórz paletę poleceń Ctrl + Shift + P i wpisz jedno z następujących poleceń:
kiedy wybierzesz linter, zostanie on zainstalowany. Próbowałem Flake8 i wydaje mi się, że problem został rozwiązany.
źródło
Po prostu dodając to, co powiedział @ Mallory-Erik: Możesz umieścić
objects = models.Manager()
to w modalach:źródło
Najpierw zainstaluj pylint-django za pomocą następującego polecenia
Następnie uruchom drugie polecenie w następujący sposób:
--load-plugins pylint_django jest niezbędne do poprawnego przeglądu kodu django
źródło
Jeśli używasz Pythona 3
Jeśli python <3
UWAGA: Wersja 2.0 wymaga pylint> = 2.0, który nie obsługuje już Pythona 2! ( https://pypi.org/project/pylint-django/ )
źródło
Robiąc
Question = new Question()
(zakładam, żenew
jest to literówka), nadpisujesz model pytania z intencjąQuestion
. Jak Sayse powiedział w komentarzach: nie używaj tej samej nazwy dla swojej zmiennej, co nazwa modelu. Więc zmień to na coś takiegomy_question = Question()
.źródło
A co z pomijaniem błędów w każdym wierszu specyficznym dla każdego błędu?
Coś takiego: https://pylint.readthedocs.io/en/latest/user_guide/message-control.html
Błąd: [pylint] Klasa „nazwa_klasy” nie ma elementu „nazwa_członka”. Można to ukryć w tym wierszu przez:
źródło
Zmień linter na - flake8, a problem zniknie.
źródło
Ten problem występuje, gdy używam pylint_runner
Otwieram plik .pylintrc i dodajemy to
źródło
Udało mi się zaktualizować ustawienia użytkownika .json
Na moim Macu był przechowywany w:
W jej ramach ustawiłem:
To rozwiązało problem.
źródło