gpt4 book ai didi

django - 如何在 wagtail 2.9 中从 request.site 更改为 Site._find_for_request(request)

转载 作者:行者123 更新时间:2023-12-01 21:34:47 26 4
gpt4 key购买 nike

我最近将我的 wagtail 应用程序升级到最新版本 2.9,现在由于 wagtail 网站中间件已被弃用,我无法让我的网站正常工作。我正在使用 request.site 现在 wagtail 2.9 使用 Site._find_for_request(request)

如何更改我当前的代码以使用最新的 wagtail 版本?提前致谢

@register.simple_tag(takes_context=True)

def og_image(上下文,页面):

protocol = re.compile(r'^(\w[\w\.\-\+]*:)*//')

if protocol.match(settings.MEDIA_URL):
base_url = ''
else:
base_url = context['request'].site.root_url

if page:
if page.og_image:
return base_url + page.og_image.get_rendition('original').url
elif page.cover_image:
return base_url + page.cover_image.get_rendition('original').url
if LayoutSettings.for_site(context['request'].site).logo:
layout_settings = LayoutSettings.for_site(context['request'].site)
return base_url + layout_settings.logo.get_rendition('original').url
return None

最佳答案

看起来您仍在使用获取当前站点的旧方法,在这种情况下:

context['request'].site

其中 context['request'] 是请求对象。按照 Wagtail 2.9 release notes 中的建议将这些事件更改为以下内容:

Site.find_for_request(context['request'])

不要忘记确保您在文件顶部的某处有 from wagtail.core.models import Site 否则您的代码将无法工作,即您会收到错误消息。

您可以在 docs 中找到有关 Site.find_for_request 的更多信息.

关于django - 如何在 wagtail 2.9 中从 request.site 更改为 Site._find_for_request(request),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62102231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com