Неработающая ссылка на интерфейсе администратора Django - PullRequest
1 голос
/ 20 июня 2010

Я сейчас читаю Практические проекты Django, и в интерфейсе администратора Django есть опция «Просмотр на сайте» при вводе информации.

Но после окончания 5-й главы книги я начал возиться с интерфейсом администратора и обнаружил, что нажатие на эту ссылку в моем приложении категорий не работает, так как не добавляет веб-журнал в URL, поэтому они выглядят так:

http://127.0.0.1:8000/categories/test-cat

когда они должны быть такими ...

http://127.0.0.1:8000/weblog/categories/test-cat

Однако на моей модели записей они работают отлично. Поэтому я попытался выяснить, что было правильно в приложении Entries, чтобы выяснить, что было неверно в приложении Categories.

Я искал около 2 часов, и я не могу определить, где Джанго это делает. Я даже скопировал исходный код из интернета, хотя некоторые из них, похоже, отсутствуют.

Мой get_absolute_url () выглядит следующим образом:

def get_absolute_url(self):
    return "/categories/%s/" % self.slug

Я редактировал:

def get_absolute_url(self):
    return "/weblog/categories/%s/" % self.slug

и это решает проблему.

Теперь у меня вопрос: почему приложение Entries не требует этого, а приложение Categories делает это?

Мой код из класса Запись:

def get_absolute_url(self):
    return ('coltrane_entry_detail', (), { 'year': self.pub_date.strftime("%Y"),
                                        'month': self.pub_date.strftime("%b").lower(),
                                       'day': self.pub_date.strftime("%d"),
                                       'slug': self.slug })
get_absolute_url = models.permalink(get_absolute_url)

1 Ответ

1 голос
/ 20 июня 2010

Используется метод get_absolute_url() на модели. Измени это, и оно должно работать:)

[править] Для отредактированного вопроса. В вашей модели категории вы используете жестко закодированную ссылку, в то время как вы используете постоянную ссылку в модели записей. Я предлагаю вам использовать постоянные ссылки в обоих местах для решения проблемы.

Вот документация о том, как его использовать: http://docs.djangoproject.com/en/dev/ref/models/instances/#the-permalink-decorator

...