如何使wagtail可订购到主页模板?



我想在我的主模板中渲染它们。如何解决该问题以获得模板上的输出?我创建了片段和可排序的,现在无法在我的主页上得到输出。我试着用related_name="question_answer"但它在这里不起作用。

@register_snippet
class Question(models.Model):
text = models.CharField(max_length=255)
slug = models.CharField(max_length=255)

panels = [
FieldPanel('text'),
FieldPanel('slug')
]

def __str__(self):
return self.text


class Answer(Orderable, models.Model):
page = ParentalKey(HomePage, on_delete=models.CASCADE, related_name="question_answer")
question = models.ForeignKey(Question, null = True, blank = True, on_delete = models.CASCADE, related_name = '+')
answer = models.CharField(max_length=300)
url = models.URLField(max_length=200)

panels = [
MultiFieldPanel([
SnippetChooserPanel('question'),
], heading="Questions"),
MultiFieldPanel([
FieldPanel('answer'),
FieldPanel('url'),
], heading="Answers & Urls")
]

def __str__(self):
return self.page.title + " -> " + self.question.text
```

在ParentalKey中设置related_name="question_answer",表示可以以page.question_answer.all()的形式访问该页面相关的答案对象。在你的模板中,你可以这样做:

<h1>Answers</h1>
<ul>
{% for item in page.question_answer.all %}
<li>{{ item.answer }}</li>
{% endfor %}
</ul>

最新更新