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

一个 slugfield 在正则表达式中最好用 \W 表示,它等于 [a-zA-Z0-9_]

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