Джанго 1.5 Общий вид

Я практикую django с книгой «Practical Django 2nd edition», которая основана на django 1.1. Я установил django 1.5, поэтому я должен выяснить изменения между версиями django и написать правильный код (спасибо, документация django)

Общие представления сильно изменились в django 1.5, но, наконец, я понял. У меня есть четыре URL-адреса в моем urls.py, как показано ниже:

urlpatterns = patterns('',
    url(r'^(?P<year>\d{4})/$', EntryYearArchiveView.as_view(), name='coltrane/Entry_Archive_year'),
    url(r'^(?P<year>\d{4})/(?P<month>\w{3})/$', EntryMonthArchiveView.as_view(),name='coltrane/Entry_month_Archive'),
    url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$',
        EntryDateDetailView.as_view(), name='coltrane/Entry_Date_Detail'),
    url(r'$', ArchiveIndexView.as_view(model=Entry, date_field="pub_date"), name='coltrane/Entry_Archive'),
)

и просмотров для каждого URL. Как видите, URL-адрес ArchiveViewIndex — это просто знак $, поэтому адрес example.com/weblog/ должен выполняться. И EntryYearArchiveView получает год. но что-то не так! адрес example.com/weblog/2013/ по-прежнему работает с ArchiveIndexView, но не с EntryYearArchiveView. EntryMonthArchiveView тоже работает неправильно. Имя шаблона YearArchive — Entry_archive_year, как и должно быть. Что я тут напутал?


person Lumos Maxima    schedule 02.06.2013    source источник
comment
вы передаете год 2013 как число или как строку?   -  person karthikr    schedule 02.06.2013
comment
Я просто следил за книгой. Я думаю, что это число, потому что (?P‹год›\d{4}).   -  person Lumos Maxima    schedule 02.06.2013
comment
он должен был принять это нормально. Просто попробуйте для меня одну вещь - измените последний URL на r'^$' вместо r'$'   -  person karthikr    schedule 02.06.2013
comment
Вот и все. Большое спасибо. Теперь он работает правильно   -  person Lumos Maxima    schedule 02.06.2013


Ответы (1)


Пометка комментария как ответа для дальнейшего использования.

изменить последний URL с

url(r'$', ArchiveIndexView.as_view(model=Entry, date_field="pub_date"), name='coltrane/Entry_Archive'),

to

url(r'^$', ArchiveIndexView.as_view(model=Entry, date_field="pub_date"), name='coltrane/Entry_Archive'),

чтобы он правильно соответствовал шаблонам URL.

person karthikr    schedule 02.06.2013