我收到pk的类型错误。 类似的东西:
step_detail()得到了一个意想不到的关键字参数' pk'对于/ courses / course / 1/1中的第二个,在step_detail的以下方法中已经注意了。我究竟做错了什么?
views.py
from django.shortcuts import render
from django.shortcuts import get_object_or_404
from .models import Course, Step
def course_list(request):
courses = Course.objects.all()
return render(request, 'courses/course_list.html', {'courses': courses})
def course_detail(request, pk):
# course=Course.objects.get(pk=pk)
course = get_object_or_404(Course, pk=pk)
return render(request, 'courses/course_detail.html', {'course': course})
def step_detail(request, course_pk, step_pk):
step = get_object_or_404(Step, course_id=course_pk, pk=step_pk)
return render(request, 'courses/step_detail.html', {'step': step})
和url.py:
from django.conf.urls import url
from . import views
urlpatterns= [
url(r'^$', views.course_list),
url(r'(?P<course_pk>\d+)/(?P<pk>\d+)/$', views.step_detail),
url(r'(?P<pk>\d+)/$', views.course_detail),
]
答案 0 :(得分:1)
您使用的是两个不同的变量名称:
pk
中urls.py
在step_pk
views.py
您应该使用相同的名称。