У меня есть приложение home с моделью HomePage
, которое получает объект из модели BlogPage
в приложении blog . Я использую этот код ниже, чтобы получить объект от BlogPage
до HomePage
.
приложение блога
class HomePage(Page):
primary_header = models.CharField(max_length=100, blank=True,)
secondary_header = models.CharField(max_length=100, blank=True,)
hero_banner_image = models.ForeignKey(
'wagtailimages.Image',
null=True,
blank=False,
on_delete=models.SET_NULL,
related_name='+')
def get_context(self, request, *args, **kwargs):
context = super().get_context(request, *args, **kwargs)
# Get object from Blog Page
blogpages = self.get_children().get(title='Blog Page').get_children().live().public().order_by('-first_published_at')
context['blogpages'] = blogpages
return context
Я использовал get()
для получения объекта по названию, но я чувствую, что это может быть не лучший способ сделать это. Если бы мне пришлось переименовать поле заголовка BlogPage
, например, в «Страница блога», это нарушит код, поскольку «Страница блога» больше не используется. Есть ли лучший способ выполнить запрос от модели BlogPage
к HomePage
?
домашнее приложение
class BlogPage(Page):
subpage_types = ['PostPage']
def get_context(self, request, *args, **kwargs):
context = super().get_context(request, *args, **kwargs)
category_slug = request.GET.get('category', None)
context['categories'] = BlogCategory.objects.all()
return context