【问题标题】:Editing Django Wagtail Context编辑 Django Wagtail 上下文
【发布时间】:2020-10-05 23:43:59
【问题描述】:

我正在尝试向从单独应用中提取的主页模型添加额外的上下文。

模型中已有的函数已经在处理页面上的联系表单。我想从投资组合应用添加博客文章。

这是我的模型中的函数:


    def serve(self, request, *args, **kwargs):
        from contact.forms import ContactForm
        from portfolio.models import PortfolioDetailPage

        context = super().get_context(request)
        context['posts'] = PortfolioDetailPage.objects.live().public()

        if request.method == 'POST':
            form = ContactForm(request.POST)
            if form.is_valid():
                  //form stuff
                try:
                   //more form stuff
                except Exception as e:
                  //more form stuff
                return render(request, 'contact/contact_page_landing.html', {
                    'page': self,
                    'contact': contact
                })
        else:
            form = ContactForm()

        return render(request, 'home/home_page.html', {
            'context': context,
            'page': self,
            'form': form
        })


在我的模板中,我有以下内容:

        {% for post in posts %}
            <div class="row">
                <div class="col-lg-4 col-md-4 col-sm-6">
        {% image post.gallery_main_image fill-250x250 as blog_img %}
                    <div class="latest__item">
                        <img src="{{ blog_img.url }}" alt="">
                        <h4><a href="{{ post.url }}">{{ post.gallery_name }}</a></h4>
                    </div>
                </div>
            {% endfor %}
            </div>

但是,在我的上下文中,我没有收到任何 posts。表格工作正常。似乎这是 Wagtail 中的 serve 函数已经拉出我的上下文的问题,并且不知何故我没有正确返回它,但我无法弄清楚。

【问题讨论】:

    标签: python-3.x django django-views wagtail


    【解决方案1】:

    context 是您作为最后一个参数传递给render 的字典。您将其作为该字典的 成员 传递,这意味着 posts 在模板上作为变量 context.posts 可用 - 这可能不是您想要的。

    page 已经包含在super().get_context(request) 返回的初始上下文中,这意味着唯一缺少的部分是添加form

        context['form'] = form
        return render(request, 'home/home_page.html', context)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-10
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 2021-10-04
      • 2020-08-22
      • 2019-01-21
      相关资源
      最近更新 更多