2010-06-20 12 views
1

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) 

Répondre

1

Il utilise la méthode get_absolute_url() sur le modèle. Changer cela et cela devrait fonctionner :)

[edit] Pour la question éditée. Dans votre modèle de catégorie, vous utilisez un lien codé en dur lorsque vous utilisez un lien permanent sur le modèle d'entrées. Je suggère que vous utilisiez des permaliens aux deux endroits pour résoudre le problème.

Voici la documentation sur la façon de l'utiliser: http://docs.djangoproject.com/en/dev/ref/models/instances/#the-permalink-decorator