我正在尝试根据参数中的值使用详细视图。
URL:
url(r'^mousesmall/(?P<name>.*)/$', IDView.as_view()),
视图:
class IDView(DetailView):
model = RNA
template_name = "home/details.html"
def get_context_data(self, **kwargs):
context = super(IDView, self).get_context_data(**kwargs)
data = self.kwargs['name']
context['object'] = RNA.objects.filter(rna_id=data)
return context
我不确定如何使用对象pk调用视图。
答案 0 :(得分:12)
您需要在基于类的视图上设置slug_field
,以便它知道您正在考虑哪个字段作为slug(我认为在您的情况下为rna_id
。您还需要设置{ {3}}在您的情况下,因为您使用name
作为URLConf值
class IDView(DetailView):
model = RNA
template_name = "home/details.html"
slug_field = 'rna_id'
slug_url_kwarg = 'name'
您现在无需覆盖get_context_object
。您还应该为您的网址命名:
url(r'^mousesmall/(?P<name>.*)/$', IDView.as_view(), name="rna_detailview"),
因此在模板中反转更容易:
{% url 'rna_detailview' name=myobject.rna_id %}