0

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

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

在我的网站上,我有 2 页:

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

我想要达到的目标:

  • 当我点击主页上的照片时,我被重定向到照片页面
  • 我用从后端获得的信息填充照片页
  • 而且照片页网址是这样的 http://example.com/photo?id=12345

所以,我想

  • 有 1 个模型用于照片页面
  • 根据请求的 url 填充照片页(即从主页我将用户重定向到 example.com/photo?id=12345,并且填充了 id=12345 的照片信息)

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

4

1 回答 1

1

Page 对象(以及从 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.some_attribute }}
{{ photo.some_other_attribute }}
于 2016-02-06T22:03:43.447 回答