Django CBV DetailView - 访问对象以分配给上下文变量?

时间:2015-06-06 13:21:19

标签: django django-class-based-views

我想将对象的特定字段分配给另一个context变量。使用基于函数的视图,这只需要声明键:值对:

context = {
  'title': my_object.nick_name
}

现在,在我的模板中,我可以使用变量{{ title }},它会显示对象的字段nick_name

如何使用基于类的视图实现相同的功能?

例如,我有这个简单的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 }}指定为使用此基于类的视图显示的对象的nick_name字段。我该怎么做?

1 个答案:

答案 0 :(得分:4)

DetailView中,您可以使用self.object访问该对象。因此你应该这样做:

context['title'] = self.object.nick_name

但是,您可能会发现通过模板中的对象简单地访问昵称更容易:

{{ object.nickname }}