【问题标题】:How to render wagtail orderable to homepage template?如何将鹡鸰订购到主页模板?
【发布时间】:2021-03-03 15:40:51
【问题描述】:

我想为我的主页模板渲染它们。如何解决获取模板输出的问题?我创建了 sn-ps 和 orderable,现在无法在我的主页中获得输出。我尝试使用 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
    ```

【问题讨论】:

    标签: python django wagtail


    【解决方案1】:

    在 ParentalKey 上设置related_name="question_answer" 意味着您可以以page.question_answer.all() 访问与页面相关的Answer 对象。因此,在您的模板中,您可以执行以下操作:

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

    【讨论】:

    • 我不知道这里出了什么问题。我以前和现在都试过了,但在这里不起作用。
    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2018-05-04
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 2014-05-28
    相关资源
    最近更新 更多