Je suis en train de lire les projets pratiques de Django et dans l'interface d'administration de Django il y a une option pour "Visualiser sur site" lors de la saisie des informations. Mais après avoir terminé le chapitre 5 du livre, j'ai commencé à bricoler avec l'interface d'administration et j'ai trouvé que cliquer sur ce lien avec mon application de catégories ne fonctionnait pas car il n'ajoute pas de blog à l'URL, donc ils apparaissent comme ça :Lien rompu sur l'interface d'administration de Django
http://127.0.0.1:8000/categories/test-cat
quand ils devraient être comme ça ...
http://127.0.0.1:8000/weblog/categories/test-cat
Cependant sur mon modèle entrées, ils fonctionnent parfaitement bien. J'ai donc essayé de voir ce qui était correct dans l'application Entrées pour savoir ce qui était incorrect dans l'application Catégories.
Je cherche depuis 2 heures et je n'arrive pas à identifier où Django fait ça. J'ai même copié le code source en ligne bien que certains d'entre eux semblent manquer.
Mon get_absolute_url() est la suivante:
def get_absolute_url(self):
return "/categories/%s/" % self.slug
J'ai effectué à:
def get_absolute_url(self):
return "/weblog/categories/%s/" % self.slug
et il résout le problème.
Ma question est maintenant, pourquoi l'application entrées ne nécessite pas cela, mais l'application Catégories fait?
Mon code de la classe Entrée:
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)