列表视图和详细信息视图在Django

时间:2016-01-10 09:59:00

标签: python html django pycharm

我想创建django项目,其中包含两个模板主列表和主列表中的详细信息,使用遗传视图列表视图和详细信息视图。 主要列表工作但不是工作细节列表。 我的代码可以帮助我吗?

urls.py

urlpatterns = [
url(r'^$', ListView.as_view(
    model = Test,
    queryset = Test.objects.all(),
    context_object_name = "test_list",
    template_name='blog\test_list.html')),


url((r'^(?P<pk>\d+)-(?P<slug>[-\w]+)/$', DetailView.as_view(
    context_object_name="test_list1",
    model=Test,
    template_name='blog\Test_details.html'
    ), name="test"),

]

html code test_list

{% for test in test_list %}
<h2> <a href="{{test.id}}">{{test.Title}}</a></h2>
{% endfor %}

html code test_details

  <h2>{{ test.Title }}</h2>

3 个答案:

答案 0 :(得分:0)

您的链接与您的网址不匹配:您只是在链接中传递了ID,但网址格式是期待链接和slug。

答案 1 :(得分:0)

我认为你的问题有几个拼写错误:

首先在网址中,你应该改变这个:

url((r'^(?P<pk>\d+)-(?P<slug>[-\w]+)/$', DetailView.as_view(

到此:

url((r'^(?P<pk>\d+)/$', DetailView.as_view(

其次,(再次针对DetailView)您的context_object_name设置为test_list1,但您的模板使用test(两者应匹配;考虑到此详细视图中没有列表,我会更改它们到test)。

第三,您的template_name设置为blog\Test_details.html,大写为T,而您的html文件实际上为小写t

答案 2 :(得分:0)

是的,纠正我们的成功(只是删除 - (?P [ - \ w] +))连接第一个和第二个模板,但第二个模板我的Test.Title是空的不显示我的数据库中的详细信息,如果我使用{%for%}显示错误消息