2013-06-02 1 views
0

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

Общий вид сильно изменился в 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 как и должно быть. Что я здесь возился?

+0

Вы проходите в году '2013' как номер или как строку? – karthikr

+0

Я только что последовал за книгой. Я думаю, что это число, потому что (? P \ d {4}). –

+0

Должно быть, все было хорошо. Просто попробуйте одно для меня - измените последний url на 'r '^ $'' вместо 'r '$'' – karthikr

ответ

0

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

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

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

в

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

для того, чтобы правильно соответствовать модели URL.