【问题标题】:Regular expression issue when using Generic Views in Django在 Django 中使用通用视图时出现正则表达式问题
【发布时间】:2011-01-06 17:26:55
【问题描述】:

我是一名前端开发人员,目前正在涉足 Django,以构建一个简单的作品集网站来展示我的作品。我在以前的工作中经常使用 Django,但现在已经超过 6 个月了,不幸的是我确实有旧工作要查看。

我的网站包括:

带有特色“项目”链接的主页 项目列表页面 项目详情页

我正在尝试利用 Django 的通用视图为我创建后两个页面。但是,我在编辑 urls.py 文件时遇到了问题。这里是:

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
from django.views.generic import list_detail
from homepage.models import Project
projects_list_info = {
  'queryset' :   Project.objects.all(),
  'allow_empty': True,
  'template_name' : '../templates/project_list.html',
}

projects_detail_info = {
   'queryset' : Project.objects.all(),
   'template_object_name' : 'project',
   'slug' : 'slug',
   'slug_field' : 'slug',
   'template_name' : '../templates/project_detail.html',    
}


urlpatterns = patterns('',
   # Example:
   # (r'^howelltocode/', include('howelltocode.foo.urls')),
   # Uncomment the admin/doc line below to enable admin documentation:
   # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
   # Uncomment the next line to enable the admin:          
   (r'^admin/', include(admin.site.urls)),
   (r'^test','homepage.views.viewTest'),
   (r'^$','homepage.views.viewHome'),
   (r'projects/$', list_detail.object_list, projects_list_info),
   (r'^projects/(?P<slug>[-\w]+)/$', list_detail.object_detail, projects_detail_info),    
   (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root':     settings.MEDIA_ROOT}),
)

当我输入 url 'http://localhost:8000/projects' 时,项目列表视图页面成功导航到 '/templates/project_list.html'。但是,如果我输入“http://localhost:8000/projects/htc-wildfire-facebook-application/”来查看“../templates/project_detail.html”页面,我会得到一个 404 页面,其中显示“没有找到匹配的项目”您的查询”消息。

我认为这很令人鼓舞,因为它显然正在寻找一个项目,但我认为我的正则表达式可能是错误的。任何帮助将不胜感激。

谢谢

詹姆斯

【问题讨论】:

    标签: regex django django-views generics


    【解决方案1】:

    您已经用 projects_detail_info 字典中的裸值“slug”覆盖了来自 URL 的 slug。从字典中删除该条目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多