gpt4 book ai didi

python - Django get_context_data() 变量在某处被覆盖

转载 作者:行者123 更新时间:2023-11-30 23:15:48 26 4
gpt4 key购买 nike

这是简化的代码示例,但可能有人在没有代码的确切副本的情况下知道问题发生的原因。所以:

class FooView(TemplateView):
template_name = 'foo.html'

def get_context_data(self, **kwargs)
context = super(FooView, self).get_context_data(**kwargs)
...
# here we get link to domain
...
args = {'domain': domain}
context.update(args)

import pdb; pdb.set_trace() # here 'domain' has a value
return context

html 模板 foo.html 尝试使用 {{ domain }} 访问“domain”值,但它是 None。

仅当我使用“域”作为标签时才会发生这种情况。因此,如果我将 domain 更改为 domain1foo - 它就可以工作。

这怎么可能?是否有可能域名名称以某种方式被覆盖,也许有人有线索?

编辑更改 get_context_view --> get_context_data(输入错误)

EDIT2 我的“域”上下文变量被 context_processor 覆盖。当使用基于函数的 View 时,一切都工作得很好。切换到基于类的 View 后,“域”开始被覆盖。可能 get_context_data() 不够?有什么方法可以防止上下文处理器覆盖变量吗?

最佳答案

是的,如果上下文处理器的某些标签或模板标签将domain变量注入(inject)到上下文中,这是可能的。

您确定该方法被称为get_context_view吗?恕我直言,它应该是 get_context_data

关于python - Django get_context_data() 变量在某处被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28088959/

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