Проблема с регулярными выражениями при использовании общих представлений в Django - PullRequest
0 голосов
/ 06 января 2011

Я разработчик внешнего интерфейса, в настоящее время работающий над Django, чтобы создать простой сайт-портфолио для демонстрации моей работы. Я довольно часто использовал Django на своей предыдущей работе, но сейчас прошло более 6 месяцев, и, к сожалению, у меня есть старая работа, которую я могу просмотреть.

Мой сайт состоит из:

Домашняя страница со ссылками на избранные "проекты" Страница со списком проектов Страница сведений о проекте

Я пытаюсь использовать Generic Views в Django, чтобы создать для меня последние 2 страницы. Однако при редактировании файла 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}),
)

Страница просмотра списка проектов успешно переходит на «/templates/project_list.html», когда я набираю URL «http://localhost:8000/projects'. Однако, если я набираю« http://localhost:8000/projects/htc-wildfire-facebook-application/', чтобы просмотреть страницу «../templates/project_detail.html» Я получаю страницу 404 с сообщением «Не найден проект, соответствующий вашему запросу».

Я считаю это обнадеживающим, так как оно явно ищет проект, но я думаю, что мое регулярное выражение может быть неправильным. Любая помощь будет принята с благодарностью.

Спасибо

Джеймс

1 Ответ

0 голосов
/ 06 января 2011

Вы перезаписали слаг, исходящий из URL, с пустым значением "slug" в своем словаре projects_detail_info. Удалить эту запись из диктата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...