擅长:python、mysql、java
<p>您应该按照应该使用的方式使用Django泛型视图类。如果所有类都是基于URL中的ID向模板传递对象,那么应该使用内置的DetailView类;然后可以在URLconf中直接将模型和模板名作为参数传递,而无需定义子类。你知道吗</p>
<pre><code>from django.views.generic import DetailView
urlpatterns = [
url(r'^xxxx/(?P<pk>[0-9]+)$', DetailView.as_view(model=X, template_name = "app/view.html"), name="view_x"),
url(r'^yyyy/(?P<pk>[0-9]+)$', DetailView.as_view(model=X, template_name = "app/view.html"), name="view_y"),
]
</code></pre>
<p>(注意DetailView希望URL参数被称为<code>pk</code>,而不是<code>id</code>。)</p>
<p>如果您确实想向视图中添加更多自定义行为,那么可以将DetailView子类化;在多个URL模式中使用同一视图类仍然是完全可能的。你知道吗</p>