我是Django的新手,我正在尝试创建学校数据库webapp作为培训练习。(使用Django 2.1)
我设置了两个模型School和Student。我的主页是数据库中所有学校的列表视图。这些学校中的每一个都是锚参考,以显示学校详细信息和所有学校学生的列表。每个学校学生也是“学生详细信息”页面的主要参考。
我的网址页面上的路径上出现了错误。
path('<int:pk>/<int:cpk>/',views.StudentDetailView.as_view(),name='student_details'),
此行获取的URL用于输出我当前所在学校的主键和所选学生的主键。
当我单击学生姓名时,它将转到与学校具有相同主键的学生,因为URL为(basic_app / 1/1 /)。如何获取它以从网址(ckp)中的第二个数字中提取并显示该主键数据?
例如,pk为1的学校有10个学生。在学校详细信息页面上,它列出了所有学生。当我单击学生3时,该URL看起来像basic_app / 1/3 /(基于上面的路径代码),但只会显示学生1的详细信息。选择合适的学生(views.py,models.py,urls.py,html文件)?
答案 0 :(得分:1)
改为使用此
path("<int:pk>/",views.SchoolDetailView.as_view(),name='detail')
答案 1 :(得分:0)
如果我的理解正确,那么您的问题基本上是,当您访问basic_app/1/3/
时,您想查看主键为3的学生的详细信息,但是却看到了主键为1的学生。
如果是这种情况,那是因为在您看来,您使用的是URL字段pk
,而您应该使用cpk
。尝试更改您的URL模式,如下所示:
path('<int:school_pk>/<int:pk>/',views.StudentDetailView.as_view(),name='student_details'),
(如果这样做不起作用,请发布StudentDetailView
的代码。)
通常,我建议使用更具描述性的网址字段,例如school_pk
,student_pk
,...,以便避免造成混乱。