Ich benutze Community pycharm und die Version von Python ist 3.6.1, Django ist 1.11.1. Diese Warnung hat keine Auswirkungen auf die Ausführung, aber ich kann die automatische Vervollständigung der IDE nicht verwenden.
Sie müssen die Django-Unterstützung aktivieren. Gehe zu
PyCharm -> Einstellungen -> Sprachen & Frameworks -> Django
und dann Enable Django Support
prüfen
Sie können den Standardmodellmanager auch explizit verfügbar machen:
from Django.models import models
class Foo(models.Model):
name = models.CharField(max_length=50, primary_key=True)
objects = models.Manager()
Python-Frameworks (Django, Flask usw.) werden nur in der Professional Edition unterstützt.
Ich habe diese hacky Workaround mit Stub-Dateien gefunden:
models.py
from Django.db import models
class Model(models.Model):
class Meta:
abstract = True
class SomeModel(Model):
pass
models.pyi
from Django.db import models
class Model:
objects: models.Manager()
Dies sollte die PyCharm-Code-Vervollständigung ermöglichen:
Dies ähnelt der Lösung von Campi, vermeidet jedoch die Notwendigkeit, den Standardwert erneut zu deklarieren
Eine andere Lösung, die ich gefunden habe, ist die Verwendung von @ python_2_unicode_compatible decorator in einem beliebigen Modell . Außerdem müssen Sie über eine str - Implementierung Ihrer Funktion verfügen
Zum Beispiel:
# models.py
from Django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible
class SomeModel(models.Model):
name = Models.CharField(max_length=255)
def __str__(self):
return self.name
Verwenden Sie ein Basismodell für alle Ihre Modelle, die Objekte verfügbar machen:
class BaseModel(models.Model):
objects = models.Manager()
class Model1(BaseModel):
id = models.AutoField(primary_key=True)
class Model2(BaseModel):
id = models.AutoField(primary_key=True)