意外的kawrgs,TypeError at / courses / course / 1/1 /

时间:2016-09-14 14:50:58

标签: python django

我收到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),
]

1 个答案:

答案 0 :(得分:1)

您使用的是两个不同的变量名称:

    pk
  • urls.pystep_pk
  • views.py

您应该使用相同的名称。