Django CBV DetailView - 访问对象以分配给上下文变量?
Django CBV DetailView - accessing the object to assign to a context variable?
我想将对象的特定字段分配给另一个 context
变量。对于基于函数的视图,这只是声明 key:value 对的问题:
context = {
'title': my_object.nick_name
}
现在在我的模板中,我可以使用变量 {{ title }}
,它会显示对象的字段 nick_name
。
如何使用 Class 基于视图实现相同的目的?
例如,我有这个简单的 DetailView:
class MyObjDetail(DetailView):
model = MyObject
def get_context_data(self, **kwargs):
context = super(MyObjectDetail, self).get_context_data(**kwargs)
context['title'] = ????? <--- right here
context['cancel'] = reverse_lazy('my_objs:my_objs_list')
return context
我想将变量 {{ title }}
指定为使用此基于 class 的视图显示的对象的 nick_name
字段。我该怎么做?
在 DetailView
中,您将能够使用 self.object
访问该对象。因此你应该这样做:
context['title'] = self.object.nick_name
但是,您可能会发现通过模板中的对象简单地访问昵称会更容易:
{{ object.nickname }}
我想将对象的特定字段分配给另一个 context
变量。对于基于函数的视图,这只是声明 key:value 对的问题:
context = {
'title': my_object.nick_name
}
现在在我的模板中,我可以使用变量 {{ title }}
,它会显示对象的字段 nick_name
。
如何使用 Class 基于视图实现相同的目的?
例如,我有这个简单的 DetailView:
class MyObjDetail(DetailView):
model = MyObject
def get_context_data(self, **kwargs):
context = super(MyObjectDetail, self).get_context_data(**kwargs)
context['title'] = ????? <--- right here
context['cancel'] = reverse_lazy('my_objs:my_objs_list')
return context
我想将变量 {{ title }}
指定为使用此基于 class 的视图显示的对象的 nick_name
字段。我该怎么做?
在 DetailView
中,您将能够使用 self.object
访问该对象。因此你应该这样做:
context['title'] = self.object.nick_name
但是,您可能会发现通过模板中的对象简单地访问昵称会更容易:
{{ object.nickname }}