Python Django 2.1.2:必须在URLconf中使用对象pk或slug调用通用详细视图SchoolDetailView

Python Django 2.1.2:必须在URLconf中使用对象pk或slug调用通用详细视图SchoolDetailView,python,django,Python,Django,我是django的新手,不知道什么是pk或slug。发生了什么事 models.py: class School(models.Model): name = models.CharField(max_length=256) principal = models.CharField(max_length=256) location = models.CharField(max_length=256) def __str__(self): retur

我是django的新手,不知道什么是pk或slug。发生了什么事

models.py:

class School(models.Model):
    name = models.CharField(max_length=256)
    principal = models.CharField(max_length=256)
    location = models.CharField(max_length=256)

    def __str__(self):
        return self.name
模板页面:

<a class="navbar-brand" href="{% url 'basic_app:list'%}">Schools</a>
views.py:

class SchoolDetailView(DetailView):
    context_object_name = 'school_detail'
    model = models.School
    template_name = 'basic_app/school_detail.html'

详细视图用于获取特定对象的详细信息。为了做到这一点,您必须在url中传递pk

urlpatterns = [
path('<int:pk>/', SchoolDetailView.as_view(), name='school-detail'),
urlpatterns=[
路径(“/”,SchoolDetailView.as_view(),name='school-detail'),
]


如果要显示对象列表,请使用ListView

详细视图用于获取特定对象的详细信息。为了做到这一点,您必须在url中传递pk

urlpatterns = [
path('<int:pk>/', SchoolDetailView.as_view(), name='school-detail'),
urlpatterns=[
路径(“/”,SchoolDetailView.as_view(),name='school-detail'),
]


如果要显示对象列表,请使用ListView

您的困惑似乎更深;你把细节和清单搞混了。您想要所有学校的列表,还是单个学校的详细信息?但是,如果你不理解pks或slugs,那么你显然没有阅读教程,所以你应该在做任何其他事情之前马上去做。我想要所有学校的列表。为什么你使用DetailView而不是ListView?你的困惑似乎更深;你把细节和清单搞混了。您想要所有学校的列表,还是单个学校的详细信息?但是如果你不理解pks或slugs,那么你显然没有阅读教程,所以你应该在做任何其他事情之前马上去做。我想要所有学校的列表。为什么你使用DetailView而不是ListView?你能告诉我如何在url中传递pk吗,谢谢你必须在你的模板url中传递这个pk谢谢我现在知道了你能告诉我如何在url中传递pk吗,谢谢你必须在你的模板url中传递这个pk谢谢我现在知道了