J'utilise la communauté pycharm et la version de python est 3.6.1, Django est 1.11.1. Cet avertissement n'a pas d'incidence sur l'exécution, mais je ne peux pas utiliser l'auto-complétion.
Vous devez activer le support Django. Aller à
PyCharm -> Préférences -> Langues et cadres -> Django
puis vérifiez Enable Django Support
Vous pouvez également exposer explicitement le gestionnaire de modèles par défaut:
from Django.models import models
class Foo(models.Model):
name = models.CharField(max_length=50, primary_key=True)
objects = models.Manager()
Les frameworks Python (Django, Flask, etc.) ne sont pris en charge que par Professional Edition . Consultez le lien ci-dessous pour plus de détails.
J'ai trouvé cette solution de contournement en utilisant des fichiers stub:
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()
Cela devrait permettre à PyCharm de compléter son code:
Ceci est similaire à la solution de Campi, mais évite la nécessité de redéclarer la valeur par défaut
Une autre solution que j’ai trouvée consiste à placer le décorateur @ python_2_unicode_compatible sur n’importe quel modèle . Il vous faut également une implémentation de str pour quatre
Par exemple:
# 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