celery
プロセスで動的なDjangoモデルを作成しています。 celery
を使用せずにこれらのモデルを作成したとき、それらは管理パネルに表示されましたが、celery
でプロセスを実行すると、モデルは管理ページに表示されません。 makemigrations
を実行すると、新しく作成されたモデルが認識されるため、モデルが作成されていることが分かります。私のコードは次のようなものです:セロリで作成したときにDjangoモデルが管理パネルに表示されない
@disable_for_loaddata
def email_change(sender, instance, **kwargs):
from email.tasks import update_email
update_email.delay(instance.pk)
tasks.py
signals.py
@shared_task
def update_email(id):
from email.views import save_email
save_email(id)
views.py
def save_email(id):
from email.models import EmailType
instance = EmailType.objects.get(pk=id)
model = type(instance.__str__(), (Email,), attrs)
admin.site.register(model, admin_opts)
reload(import_module(settings.ROOT_URLCONF))
clear_url_caches()
call_command('makemigrations')
call_command('migrate')
これがなぜモデルが管理パネルに表示されないのかを誰でも指摘できますか?
@hansTheFranzあなたは 'admin.site.register(model、admin_opts)'を削除することをお勧めしますか? – cookiedough
'admin.site.register(model、admin_opts)'の 'admin_opts'の値は何ですか? –
@OluwafemiSuleこれはadminのフィールドオプションの束です: 'class BaseEmail(admin.ModelAdmin): fields =(...)'管理ページに表示されるフィールドを変更する – cookiedough