Wagail一页不同的内容

时间:2016-02-06 21:05:40

标签: python django wagtail

我是Wagtail和python的新手,所以可以对我的问题提供一些帮助。

我有一个网络应用程序(wagtail网站+ rest api后端)。

在我的网站上我有2页:

  • 主页,包含可访问对象列表(例如照片)
  • 带有照片详细信息的PhotoPage

我想要实现的目标:

  • 当我点击主页上的照片时,我被重定向到了照片
  • 我在照片中填写了从后端获得的信息
  • 照片网页就像http://example.com/photo?id=12345
  • 一样

所以,我想

  • 有1个模型用于photopage
  • 根据请求的网址填写照片(即从主页我将用户重定向到example.com/photo?id=12345,并且其中包含有关id = 12345的照片的信息)

我想应该有一些中间件来解析请求的url来获取id并用API中的信息填充页面。这个问题有没有标准的解决方案?

1 个答案:

答案 0 :(得分:1)

页面对象(以及从Page继承的任何类)都有一个get_context方法,可用于添加模板的上下文预呈现。

from django.shortcuts import get_object_or_404

class PhotoPage(Page):
    # your model definition ...
    def get_context(self, request):
        context = super(PhotoPage, self).get_context(request)
        photo_pk = request.GET.get('id',None)
        photo = get_object_or_404(YourPhotoModel,pk=photo_pk) # if no matching photo, return 404. You can do whatever you like instead :)
        context['photo'] = photo
        return context

现在,在您的照片模板中,您可以直接访问Photo模型实例...

{{ photo.some_attribute }}
{{ photo.some_other_attribute }}