这似乎是一个非常有用的明显模式,并帮助开发人员遵守DRY。例如,定义可以传递给每个视图的特定上下文。据我所知,没有办法做到这一点。
答案 0 :(得分:1)
根据文档中的定义,可以扩展所有基于类的通用视图,并覆盖其方法。例如,如果除了视图定义的自定义上下文变量之外,还需要定义额外的上下文变量,只需使用get_context_data
方法添加它们:
class CustomDetailView(DetailView):
model = MyModel
def get_context_data(self, **kwargs):
context = super(CustomDetailView, self).get_context_data(**kwargs)
context.update({
"foo": "bar",
"baz": 999,
})
return context
或者,您可能需要定义某个mixin,根据需要将其包含在每个视图中。