Django 是URL还是视图?

Django 是URL还是视图?,django,Django,看起来应该有用。。。但是 这是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_

看起来应该有用。。。但是 这是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))
url.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'),   
从django.conf.url.defaults导入*
urlpatterns=模式(“”,
(r“^browse/”,“use_lesson.views.browse”),
(r“^lesson/(?P[a-zA-Z0-9-]+),“使用课程.视图.使用课程”),
下面是基本的错误消息 请求方法:获取 请求URL:…/lesson/superfarts Django版本:1.4.1 异常类型:DoesNotExist 异常值:课程匹配查询不存在

它说问题就在这里:lessons=Lesson.objects.get(slug=Lesson)

当我在“python manage.py shell”中执行相同的查询时 我得到了我想要的结果。

尝试将其更改为:

(r'^lesson/(?P<lesson>[a-zA-Z0-9-]+)/$', 'use_lesson.views.Use_Lesson')
(r'^lesson/(?P[a-zA-Z0-9-]+)/$,“使用课程.视图.使用课程”)

一个slugfield在regexp中最好表示为\W,它等于[A-zA-Z0-9]

(r'^lesson/(?P<lesson>\W+)/$', 'use_lesson.views.Use_Lesson')
(r'^lesson/(?P\W+/$,“使用课程.视图.使用课程”)

在shell上验证您正在执行完全相同的查询,例如
lesson
的值相同。具体来说,请确保
lesson.objects.get(slug='superfarts'))
在manage.py shell中为您提供了预期的结果。这一个成功了,谢谢!但我不太理解其中的区别?我现在再次查看,似乎您的原始url应该可以工作。您可以在view
lesson
var中打印吗?谢谢…这看起来应该可以工作,但出于某种原因它没有工作?