コミュニティpycharmを使用し、pythonは3.6.1、Djangoは1.11.1です。この警告は実行には影響しませんが、使用できません。 IDEのオートコンプリート。
Djangoサポートを有効にする必要があります。
PyCharm->設定->言語とフレームワーク-> Django
そして、Enable Django Support
デフォルトのモデルマネージャーを明示的に公開することもできます。
from Django.models import models
class Foo(models.Model):
name = models.CharField(max_length=50, primary_key=True)
objects = models.Manager()
Pythonフレームワーク(Django、Flaskなど)は、Professional Editionでのみサポートされています。詳細については、以下のリンクを確認してください。
私が見つけた別の解決策は、任意のモデルに@ python_2_unicode_compatibleデコレータを配置することです。また、strあなたの関数を実装する必要があります
例えば:
# 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
スタブファイルを使用して、このハッキングの回避策を見つけました。
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()
これはCampiのソリューションに似ていますが、デフォルト値を再宣言する必要がありません
オブジェクトを公開するすべてのモデルにベースモデルを使用します。
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)