0

それはうまくいくはずです...しかし..ここにviews.pyがあります

from django.shortcuts import render_to_response
from django.template import RequestContext
from create_lesson.models import Lesson
from django.contrib.auth.models import User
from add_material.models import Materials

def Use_Lesson(request, lesson):
    user=request.user
    lessons = Lesson.objects.get(slug=lesson)
    lessons.attributes=Materials.objects.filter(lesson=lessons.pk)
    context = {'user':user,'lesson':lessons,}
    return render_to_response('use_lesson/use_lesson.html', context, context_instance=RequestContext(request))

urls.py は次のようになります

from django.conf.urls.defaults import *

urlpatterns= patterns('',
    (r'^browse/', 'use_lesson.views.Browse'),
    (r'^lesson/(?P<lesson>[a-zA-Z0-9-]+)', 'use_lesson.views.Use_Lesson'),   

基本的なエラー メッセージは次のとおりです。 リクエスト メソッド: GET リクエスト URL: .../lesson/superfarts Django バージョン: 1.4.1 例外タイプ: DoesNotExist 例外値: レッスン マッチング クエリが存在しません。

そして、問題はここにあると言っています: レッスン = Lesson.objects.get(slug=lesson)

「python manage.py shell」で同じクエリを実行すると、探している結果が得られます。

4

2 に答える 2

1

次のように変更してみてください。

(r'^lesson/(?P<lesson>[a-zA-Z0-9-]+)/$', 'use_lesson.views.Use_Lesson')
于 2013-01-21T08:41:42.630 に答える
0

スラグフィールドは、[a-zA-Z0-9_] に等しい \W によって正規表現で最もよく表されます。

(r'^lesson/(?P<lesson>\W+)/$', 'use_lesson.views.Use_Lesson')
于 2013-01-21T09:30:29.873 に答える