gpt4 book ai didi

django - 通过模板标签向当前上下文添加变量

转载 作者:行者123 更新时间:2023-12-04 04:35:14 26 4
gpt4 key购买 nike

我想要一个模板标签,它获取对象的查询集并使它们在当前模板的上下文中可用。从我所看到的,使用 simple_tag 是可能的,如下所示:

@register.simple_tag(takes_context=True)
def get_myobject_queryset(context, string_arg)
myobjects = MyObject.objects.all()
context['myobjects'] = myobjects
return ''

这种方法有什么缺点,或者通常有更好的方法来实现我想要的吗?我之所以这么问,只是因为这感觉有点像是对我认为非常普通的任务的一种解决方法。

最佳答案

考虑编写上下文处理器。

#myapp/contexts.py
def get_myobject_queryset(request):
myobjects = MyObject.objects.all()
return {'myobjects': myobjects}

不要忘记在 TEMPLATE_CONTEXT_PROCESSORS 设置中添加处理器。
#settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.request",
"myapp.contexts.get_myobject_queryset",)

然后在模板中,您将能够访问您的变量,如 {{ myobjects }}
文档: https://docs.djangoproject.com/en/dev/ref/templates/api/#writing-your-own-context-processors

关于django - 通过模板标签向当前上下文添加变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19841412/

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