gpt4 book ai didi

python - Django 跨 View 获取上下文数据

转载 作者:行者123 更新时间:2023-12-01 03:41:46 24 4
gpt4 key购买 nike

我知道有几个通用 View ,例如 ListView , DetailView ,或者简单地View 。问题是我实际上可以获得 BaseMixin 中声明的上下文数据吗?的get_context_data()并在没有覆盖的 View 中使用它 get_context_data() ?示例:

 class BaseMixin(object):
def get_context_data(self, *args, **kwargs):
context = super(BaseMixin, self).get_context_data(**kwargs)
context['test'] = 1
return context

以及扩展此 BaseMixin 的 View :

class FooView(BaseMixin, View):
def foo(self, request):
context = super(BaseMixin, self).get_context_data(**kwargs)
# do something
return

即使在放置 **kwargs 之后,这实际上也不起作用。作为 foo() 中的参数。错误是'super' object has no attribute 'get_context_data' 。那么有没有办法获取 BaseMixin 中设置的上下文数据在FooView

感谢您的回答:)

最佳答案

感谢@Sayes和所有答案海报,我终于解决了这个问题。据我了解,问题实际上出在BaseMixin上,BaseMixin的继承类,即object,没有get_context_data() 函数,就像@Sayes 评论的那样。将这个 object 替换为 ContextMixin 后,一切都完美运行,至少现在完美。

这是修改后的BaseMixin:

class BaseMixin(ContextMixin):
def get_context_data(self, *args, **kwargs):
# do something
return context

关于python - Django 跨 View 获取上下文数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39505184/

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