2016-08-07 10 views
1

Ich habe eine Liste von Klassen, und ich muss Informationen bestimmter Klasse (d. H. Studentennamen, Klassenmonitor usw.) erhalten. Es gibt kein Problem beim Anzeigen der Klassenliste (localhost:8000/classes), aber wenn ich eine bestimmte Klasse adressiere (localhost:8000/classes/nice_guys), erhalte ich class_list() got an unexpected keyword argument 'pk' error.Ich habe ein unerwartetes Schlüsselwort-Argument 'pk'

views.py

def class_list(request): 
    classes = Class.objects.all() 
    return render(request, 'classes/class_list.html', {'classes': classes}) 

def class_display(request, pk): 
    class_to_display = get_object_or_404(Class, pk=pk) 
    return render(request, 'classes/class_display.html', {'class_to_display': class_to_display}) 

Anwendung urls.py

urlpatterns = [ 
    url(r'(?P<pk>\w+)', views.class_display), 
    url(r'', views.class_list), 
] 

Außen urls.py

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^classes/(?P<pk>\w+)', include('students.urls')), 
    url(r'^classes', include('students.urls')), 
    url(r'^$', views.hello_world) 
] 

Antwort

3

Sie sind includi Die Schüler urls zweimal, einmal mit dem Argument pk, was keinen Sinn ergibt: das heißt, es wird an jede Ansicht übergeben, einschließlich der class_list, die es nicht erwartet (und das class_display würde es zweimal erhalten). Entfernen Sie das erste Include.

+0

Das hat funktioniert. Vielen Dank! –

Verwandte Themen