【发布时间】:2019-04-23 04:42:09
【问题描述】:
使用Wagtail我有ArticlePages,每个Authors可以有0个或多个Authors,它们是Snippets。
我想获取Authors 的列表以及它们所连接的ArticlePages 的数量,但不知道如何操作。我对ModelCluster 感到困惑,我想,因为我可以使用香草 Django。
(我什至不确定我是否过于复杂了;我不需要在文章中订购作者...)
from django.db import models
from modelcluster.fields import ParentalKey
from wagtail.admin.edit_handlers import InlinePanel
from wagtail.core.models import Orderable, Page
from wagtail.snippets.edit_handlers import SnippetChooserPanel
from wagtail.snippets.models import register_snippet
class ArticlePage(Page):
content_panels = Page.content_panels + [
InlinePanel('authors', label='Authors'),
]
@register_snippet
class Author(models.Model):
name = models.CharField(max_length=255, blank=False)
panels = [
FieldPanel('name'),
]
class ArticleAuthorRelationship(Orderable, models.Model):
author = models.ForeignKey(
'Author',
on_delete=models.CASCADE,
related_name='+')
page = ParentalKey(
'ArticlePage',
on_delete=models.CASCADE,
related_name='authors')
panels = [
SnippetChooserPanel('author'),
]
FWIW,我知道我可以使用article.get_usage() 获得单个Author 的文章,这很方便!
【问题讨论】: