web-dev-qa-db-fra.com

Attributs non résolus 'objets' pour la classe '' dans PyCharm

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.

27
zhiang.shi

Vous devez activer le support Django. Aller à 

PyCharm -> Préférences -> Langues et cadres -> Django  

puis vérifiez Enable Django Support

46
vishes_shell

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()
4
Campi

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.

Comparaison des éditions PyCharm

2
winux

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:  enter image description here

Ceci est similaire à la solution de Campi, mais évite la nécessité de redéclarer la valeur par défaut

0
Christopher Davies

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
0
Yarh