gpt4 book ai didi

Django CMS 插件上下文与页面上下文

转载 作者:行者123 更新时间:2023-12-02 06:45:09 25 4
gpt4 key购买 nike

我有一个新闻页面,在 news.detailpage 中,我在一个小列中还有另外 4 个项目(新闻、视频等),作为名为 CrossItems 的模型的 cms_plugin

enter image description here

问题是,cms_plugin 的上下文可以包含 news.detailpage 中显示的新闻。

我担心的是,我无法从 cms_plugins 上下文访问页面上下文,否则我可以轻松过滤掉新闻。

有什么方法可以实现这一点,以便这 4 项不包含左侧显示的实际新闻?

最佳答案

像这样怎么样..

在您的cms_plugins.py

如果您想要 current_page:

def render(self, context, instance, placeholder):
context = super(CrossItemsPlugin, self).render(context, instance, placeholder)
request = context['request']
page = request.current_page

# your logic goes here

如果你想要当前的“文章”......你需要在你的views.py中设置它

def get_context_data(self, **kwargs):
context = super(NewsDetailView, self).get_context_data(**kwargs)
setattr(self.request, 'current_article', self.object)
return context

您可以在插件渲染方法中访问它。

def render(self, context, instance, placeholder):
context = super(CrossItemsPlugin, self).render(context, instance, placeholder)
request = context['request']
article = request.current_article

关于Django CMS 插件上下文与页面上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28581196/

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