尚未加载模型

问题描述 投票:0回答:1

我尝试获取ProgramPage的所有页面,其中字段program_types具有特定的[[pk在添加之前,一切都很好。

program_type = ProgramType.objects.get(pk=1) programs = ProgramPage.objects.live().public().filter(program_types__in=[program_type])
这里是

models.py

的完整代码:# program/models.py from django import forms from django.db import models from modelcluster.fields import ParentalManyToManyField from wagtail.core.models import Page from wagtail.core.fields import RichTextField from wagtail.admin.edit_handlers import FieldPanel from wagtail.snippets.models import register_snippet @register_snippet class ProgramType(models.Model): name = models.CharField(max_length=255) panels = [ FieldPanel('name'), ] def __str__(self): return self.name class Meta: verbose_name_plural = "Program types" class ProgramPage(Page): description = RichTextField(blank=True) program_types = ParentalManyToManyField("program.ProgramType", blank=True) content_panels = Page.content_panels + [ FieldPanel('description'), FieldPanel('program_types', widget=forms.CheckboxSelectMultiple), ] class IndexProgram(Page): program_type = ProgramType.objects.get(pk=1) programs = ProgramPage.objects.live().public().filter(program_types__in=[program_type])
在“ makemigrations”或“ runserver”之后,出现错误:

raise AppRegistryNotReady(“尚未加载模型。”]

django.core.exceptions.AppRegistryNotReady:模型尚未加载。

django django-models wagtail
1个回答
0
投票
所有页面都有一个get_context方法,每当呈现模板时就会调用该方法,并返回变量字典以绑定到模板中。

class IndexProgram(Page): def get_context(self, request): context = super().get_context(request) program_type = ProgramType.objects.get(pk=1) context['programs'] = ProgramPage.objects.live().public().filter(program_types__in=[program_type])

© www.soinside.com 2019 - 2024. All rights reserved.