Я обновлял определения get_absolute_url в приложении и по какой-то причине прекратил работать. Не смогли точно выяснить, почему. Еще страннее то, что все работает нормально на моей локальной машине, но не работает на сервере (Webfaction).get_absolute_url перестала работать?
Оригинальный код, который работал, был:
def get_absolute_url(self):
return "/blog/%s/%02d/%02d/%s/" % (self.publication_date.year, self.publication_date.month, self.publication_date.day, self.URL)
Я изменил, что:
def get_absolute_url(self):
return reverse('blog-post', args=[
self.publication_date.year,
self.publication_date.month,
self.publication_date.day,
self.URL
])
Он не смог молча. Когда я нажал на «Посмотреть на сайте» ссылке в админке, я получил эту ошибку:
Reverse for 'blog-post' with arguments '(2013, 7, 19, 'some-test-slug')' and keyword arguments '{}' not found.
Я попытался с помощью именованных аргументов вместо:
def get_absolute_url(self):
return reverse('blog-post', kwargs={
'year': self.publication_date.year,
...
})
... но это не имеет какого-либо аффекта.
Помните, странно, что все в порядке в моей местной среде.
Использование Django 1.3.7 для этого, FWIW.
Благодарим за помощь.
Вот urls.py:
urlpatterns = patterns('blog.views',
...
url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[a-zA-Z0-9_.-]+)/$', 'post', name='blog-post'),
...
)
показать нам файл urls.py – lalo
Вот urls.py: –