経験した
しかし、答えは私の問題を解決できなかったので、もう一度尋ねます。
設定でINSTALLED_APPSに追加されるアプリがあります。
いつでもmanage.py runserver
、私はこの警告を受けます、
[trimmed path to project]/catalog/models.py:9: RemovedInDjango19Warning: Model class catalog.models.Category doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9.
class Category(models.Model):
私のアプリのコード、
signals.py
from Django.db.models.signals import post_save
from Django.dispatch import receiver
from models import Category
@receiver(post_save, sender=Category)
def someSignal(sender, **kwargs):
pass
apps.py
from Django.apps import AppConfig
class CatalogConfig(AppConfig):
name = 'catalog'
verbose_name = 'Catalogue'
init.py
import signals
default_app_config = 'catalog.apps.WhosConfig'
Djangoバージョン1.8.2(Python 2.7.8
アプリの構成を実行する前にmodels.pyをインポートしています。
これを修正するには、CatalogConfig.ready
メソッドで信号をインポートして設定します。
このような:
signals.py
def someSignal(sender, **kwargs):
pass
apps.py
from Django.apps import AppConfig
from Django.db.models.signals import post_save
class CatalogConfig(AppConfig):
name = 'catalog'
verbose_name = 'Catalogue'
def ready(self):
from .signals import someSignal
post_save.connect(
receiver=someSignal,
sender=self.get_model('Category')
)
準備ができたメソッドをチェックしたいかもしれません ドキュメント内
テストの実行中にこの問題が発生しましたが、それは単に変更の問題でした:
from .models import MyModel
に
from apps.myapp.models import MyModel