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))
In der ersten Zeile dieser Funktion wird ein Fehler angezeigt Question.objects.all()
:
E1101: Klasse 'Frage' hat keine Objekte 'Mitglied'
Ich folge dem Django-Dokumentations-Tutorial und sie haben den gleichen Code zum Laufen.
Ich habe versucht, eine Instanz aufzurufen.
Question = new Question()
and using MyModel.objects.all()
Auch mein models.py
Code für diese Klasse ist dieser ...
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
Ohne Erfolg habe ich immer noch diesen Fehler.
Ich habe über Pylint gelesen und dies ausgeführt ...
pylint --load-plugins pylint_django
Was nicht geholfen hat, obwohl in der Github-Readme-Datei steht ...
Verhindert Warnungen vor von Django generierten Attributen wie Model.objects oder Views.request.
Ich habe den Befehl in meiner virtuellen Umgebung ausgeführt und trotzdem nichts.
Jede Hilfe wäre also großartig.
python
django
django-views
buuencrypted
quelle
quelle
pylint --generated-members=objects
Manager
Instanz in dermodels.py
Datei. Weitere Informationen finden Sie in der Django-Dokumentation .Antworten:
Installieren Sie
pylint-django
unter Verwendung vonpip
wie folgtGehen Sie dann in Visual Studio Code zu: Benutzereinstellungen ( Ctrl+ ,oder Datei> Einstellungen> Einstellungen, falls verfügbar) Geben Sie Folgendes ein (beachten Sie die geschweiften Klammern, die für benutzerdefinierte Benutzereinstellungen in VSC erforderlich sind):
quelle
.pylintrc
wieload-plugins=pylint_django
folgt in eine Datei einfügen können: Auf diese Weise wird sie auch von der CLI übernommen, sodass sie in einer kontinuierlichen Integrationseinstellung funktioniert.[pylint] C0111:Missing module docstring
Fehlermeldung@ tieuminh2510 Antwort ist perfekt. In neueren Versionen von VSC finden Sie jedoch nicht die Option, diesen Befehl in den Benutzereinstellungen zu bearbeiten oder einzufügen . Führen Sie in der neueren Version die folgenden Schritte aus , um diesen Code hinzuzufügen :
In den ersten geschweiften Klammern. Stellen Sie sicher, dass Pylint-Django .
Hoffe das wird helfen!
quelle
pip install pylint-django
. Wenn die Erweiterung nicht installiert ist, scheint diese Änderung Ihrer Einstellungen leise fehlzuschlagen und alle Flusen zu beschädigen.Missing module docstringpylint(missing-module-docstring)
. Was kann man dafür tun?Installieren Sie Django Pylint:
Strg + Umschalt + P> Einstellungen: Sprachspezifische Einstellungen konfigurieren> Python
Die für die Python-Sprache verfügbare settings.json sollte wie folgt aussehen:
quelle
Hier ist die Antwort. Von meinem reddit-Beitrag erhalten ... https://www.reddit.com/r/django/comments/6nq0bq/class_question_has_no_objects_member/
quelle
objects = models.Manager()
in der Modellklasse hat es für mich in VS Code gemacht. Vielen Dank.Ich habe alle möglichen Lösungen ausprobiert, aber leider haben meine vscode-Einstellungen den Linterpfad nicht geändert. Daher versuche ich, die vscode-Einstellungen unter Einstellungen> Benutzereinstellungen> Python zu untersuchen . Suchen Sie nach Flusen: Pylint-Pfad und ändern Sie ihn in "pylint_django". Vergessen Sie nicht, den Linter unter Einstellungen> Benutzereinstellungen> Python-Konfiguration von "pyLint" auf "pylint_django" in "pylint_django" zu ändern.
quelle
UPDATE FÜR VS CODE 1.40.0
Danach:
Folgen Sie diesem Link: https://code.visualstudio.com/docs/python/linting#_default-pylint-rules
Beachten Sie, dass Sie Folgendes
pylint
berücksichtigen müssen,pylint-django
indem Sie Folgendes angeben:in dem
settings.json
von VS Code.Aber danach werden Sie viele neue Flusenfehler bemerken. Lesen Sie dann, was hier gesagt wurde:
Ich habe eine
.pylintrc
Datei wie im Link beschrieben erstellt und anschließend die folgenden Parameter in der Datei konfiguriert (der Rest der Datei bleibt unberührt):Funktioniert jetzt
pylint
wie erwartet.quelle
Sie können den Linter für die Python-Erweiterung für Visual Studio Code ändern.
Öffnen Sie in VS die Befehlspalette Strg + Umschalt + P und geben Sie einen der folgenden Befehle ein:
Wenn Sie einen Linter auswählen, wird dieser installiert. Ich habe flake8 ausprobiert und es scheint, dass das Problem für mich behoben ist.
quelle
objects = models.Manager()
Fügen Sie einfach hinzu, was @ Mallory-Erik gesagt hat: Sie können es in die Modalitäten einfügen:quelle
Installieren Sie zuerst pylint-django mit dem folgenden Befehl
Führen Sie dann den zweiten Befehl wie folgt aus:
--load-plugins pylint_django ist notwendig, um einen Django-Code korrekt zu überprüfen
quelle
Wenn Sie Python 3 verwenden
Wenn Python <3
HINWEIS: Für Version 2.0 ist pylint> = 2.0 erforderlich, das Python 2 nicht mehr unterstützt! ( https://pypi.org/project/pylint-django/ )
quelle
Wenn Sie dies tun
Question = new Question()
(ich nehme an, dasnew
ist ein Tippfehler), überschreiben Sie das Fragenmodell mit der AbsichtQuestion
. Wie Sayse in den Kommentaren sagte: Verwenden Sie für Ihre Variable nicht denselben Namen wie den Namen des Modells. Ändern Sie es also in so etwas wiemy_question = Question()
.quelle
Wie wäre es, Fehler in jeder Zeile zu unterdrücken, die für jeden Fehler spezifisch sind?
So etwas wie das: https://pylint.readthedocs.io/en/latest/user_guide/message-control.html
Fehler: [pylint] Klasse 'Klassenname' hat kein Mitglied 'Mitgliedsname'. Sie kann in dieser Zeile unterdrückt werden durch:
quelle
Ändern Sie Ihren Linter auf - flake8 und das Problem wird verschwinden .
quelle
Dieses Problem trat auf, wenn ich pylint_runner verwende
Also öffne ich die .pylintrc-Datei und füge diese hinzu
quelle
Ich konnte die user settings.json aktualisieren
Auf meinem Mac wurde es gespeichert in:
Darin stelle ich Folgendes ein:
Das hat das Problem für mich gelöst.
quelle