g:通过ForeignKey筛选页面

时间:2018-11-20 13:38:19

标签: django wagtail

我使用Wagtail来获取Page的查询集,这些查询的特定子类具有到Snippet的特定外键。

from django.db import models
from wagtail.core.models import Page
from wagtail.snippets.models import register_snippet

@register_snippet
class Organization(models.Model):
    name = models.CharField(max_length=255, blank=False)

class ArticlePage(Page):
    organization = models.ForeignKey(
        'Organization',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+'
    )

那么,如何获得所有Page的查询集,它们的关联ArticlePage具有Organisationid1? >

1 个答案:

答案 0 :(得分:5)

ArticlePage.objects.filter(organisation__id=1)

这将为您提供ArticlePage对象的查询集,通常比Page对象的查询集更好,因为它将为您提供Page的所有功能以及任何其他字段和方法在ArticlePage上定义。如果出于某种原因您需要它们成为基本的Page对象,则可以使用:

Page.objects.filter(articlepage__organisation__id=1)