2016-10-24 5 views
0

Also habe ich ein Problem mit PyCharm und kann keine Lösung dafür finden. Es schlägt fehl, unaufgelösten Referenzen zu erkennen:PyCharm erkennt keine ungelösten Referenzen [Django]

example

Das Bild zeigt auch, dass es request.session für die automatische Vervollständigung fehlschlägt. Es passiert nur mit .session, es funktioniert mit jedem anderen Attribut.

Auch dieses Bild zeigt, dass es auch für andere Sachen unaufgelösten Referenzen erkennt:

es

this image

Ich laufe auf einem virtualenv wird der Interpreter korrekt konfiguriert und ich habe aktiviert Django Unterstützung.

Oh, und ich bin mit Python3 und Django 1.10.2

EDIT: Gerade versucht es mit anderen Projekten. Es funktioniert nicht mit Django 1.10.x arbeiten, sondern arbeitet mit Django 1.9.x

+0

Sollte dies ein Fehlerbericht an PyCharm sein? –

+0

@JeffBridgman Ich bin mir nicht sicher, ob es ein Fehler ist oder ob ich etwas verpasse, da es gestern gut funktionierte. –

+0

Ich bin ein loyaler Jetbrains-Kunde und sie haben hervorragende offizielle Support-Kanäle. –

Antwort

0

Nun, in Ihrem ersten Beispiel request ist ein Parameter an die Funktion dummy_view - wie wissen würde PyCharm welche Art es ist, um ungelöste Referenzen zu überprüfen (oder bieten Vorschläge zur automatischen Vervollständigung an)?

Sie könnten einen Scheck für request ‚s Typ hinzufügen (auch vielleicht eine gute Idee, um Fehler zu vermeiden):

def dummy_view(request): 
    assert isinstance(request, ExpectedClassType) 

Oder, da Sie Ihre Frage mit python-3.x getaggt könnten Sie auch type hinting:

def dummy_view(request: ExpectedClassType): 
+0

Es weiß, es hat Django-Unterstützung. Es funktioniert perfekt in Projekten mit früheren Versionen von Django. Ich tippe den Parameter, während dieser mögliche Fehler nicht behoben ist, danke :) –

+0

Ich spreche nicht über Django Unterstützung - was aber nur von Bedeutung wäre, wenn der Variablentyp bekannt wäre (und dann nachgeschlagen werden kann) Django Unterstützung), ich spreche über den ** tatsächlichen Code Kontext **. Verwenden Sie den ** genauen ** gleichen Code, wenn Sie mit den früheren Versionen vergleichen, nicht wie in dieser Frage, wo Sie undefinierte Referenzprüfung in 2 verschiedenen Kontexten vergleichen: ein unbekannter Parameter (lokale Variable), der alles im Vergleich zu einer bekannten Klasse sein kann Beispiel. –

+0

[Bei einem Projekt, das funktioniert] (https://puu.sh/rWeAU/ee428f15f8.png), genau derselbe Code. –