Python 不带pk的django url

Python 不带pk的django url,python,django,url,Python,Django,Url,我已经尝试了太长时间,现在让我的URL与我的简单模型和视图一起工作。有些事情我绝对不明白 我希望创建一个类似以下内容的url: ../department/team, 这里我不使用部门对象的PK,而是使用名称 我的模型看起来像: class Department(models.Model): name = models.CharField(max_length=50, blank=True, null=True) def __str__(self): return

我已经尝试了太长时间,现在让我的URL与我的简单模型和视图一起工作。有些事情我绝对不明白

我希望创建一个类似以下内容的url:
../department/team
, 这里我不使用部门对象的PK,而是使用名称

我的模型看起来像:

class Department(models.Model):
    name = models.CharField(max_length=50, blank=True, null=True)
    def __str__(self):
        return 'Department: ' + self.name

class Hold(models.Model):
    name = models.CharField(max_length=50, blank=True, null=True)
    department = models.ForeignKey(Department, on_delete=models.CASCADE)
我的视图看起来像(更新的):

我的url如下所示:已更新

urlpatterns = [
    path('', views.IndexView.as_view(), name='index'),
    path('<name>', views.DepartmentView.as_view(), name='depdetail')
 ]
urlpatterns=[
路径(“”,views.IndexView.as_view(),name='index'),
路径(“”,views.DepartmentView.as_view(),name='depdetail')
]
最后是我的html:

<h1> Hello there {{ object.name }} student</h1> </br>
<b> Choose your team:<b> </br>
你好{{object.name}学生
选择您的团队:
然而,我不断得到
页面未找到
必须是slug或pk
。。 我希望有人能帮我,这样我就可以安心了

已更新
现在可以使用了:)谢谢你的回复。

默认情况下,Django会在你使用
详细视图时查找
pk
slug
字段。您必须重写方法以更改此行为:

get\u object()
在视图的参数中查找
pk\u url\u kwarg
参数;如果找到此参数,此方法将使用该值执行基于主键的查找。如果未找到此参数,它将查找
slug\u url\u kwarg
参数,并使用
slug\u字段执行slug查找


尽管如此,您的方法还有其他问题。出于其他原因,最好使用slug而不是名称。例如,
name
不能保证是唯一的,而且它可能包含不安全的URL字符。有关如何使用slug字段的详细讨论,请参阅。

默认情况下,Django将在使用
详细视图时查找
pk
slug
字段。您必须重写方法以更改此行为:

get\u object()
在视图的参数中查找
pk\u url\u kwarg
参数;如果找到此参数,此方法将使用该值执行基于主键的查找。如果未找到此参数,它将查找
slug\u url\u kwarg
参数,并使用
slug\u字段执行slug查找

尽管如此,您的方法还有其他问题。出于其他原因,最好使用slug而不是名称。例如,
name
不能保证是唯一的,而且它可能包含不安全的URL字符。有关如何使用slug字段的详细讨论,请参见

<h1> Hello there {{ object.name }} student</h1> </br>
<b> Choose your team:<b> </br>