Un petit exemple qui pourrait t'inspirer :
http://djangosnippets.org/snippets/2627/

Il faudrait effectivement verifier la validité des 2 slugs avant d'aller
dans la vue détail.

Julien



Le 19 février 2012 20:40, bluerat <[email protected]> a écrit :

> Bonjour,
>
> Je commence à apprendre Django afin de refaire la refonte de mon site :-)
>
> Pour cela, je me sers de divers scripts disponibles pour la partie "blog",
> comme par exemple :
> https://github.com/nathanborror/django-basic-apps/tree/master/basic/blog
>
> J'aimerai que l'URL d'un article soit de la sorte :
> http://www.monsite.fr/blog/"categorie"/"slug de l'article"
> En remplaçant "categorie" par le slug de la catégorie dans laquelle est
> l'article, et "slug de l'article" par le slug de l'article ^^
>
> Pour l'instant j'ai ceci dans mes urls :
> [code]
> url(r'^([\w-]+)/(?P<slug>[\w-]+)/$',
>        'django.views.generic.list_detail.object_detail',
>        dict(
>            queryset=Post.online_objects.all(),
>            slug_field='slug',
>        ),
>        name='blog_post',
>    ),
> [/code]
>
> Et voici la méthode get_absolute_url() issue du modèle des articles
> permettant de récupérer l'URL de l'article afin de l'afficher en cliquant
> dessus :
> [code]
> @models.permalink
> def get_absolute_url(self):
>    return ('blog_post', [self.category.slug, self.slug])
> [/code]
>
> Alors j'arrive bien à afficher mon article avec l'url souhaitée, par
> exemple : /blog/django/sortie-de-django-13.
> Cependant, si je modifie à la main la catégorie, par exemple
> /blog/djnafsfs/sortie-de-django-13, et bien l'article s'affiche quand
> même, ce qui au final est normal et concorde bien avec la regex dans les
> URLS.
> Cependant j'aimerai dans ce cas là rediriger vers une erreur 404, ou au
> pire faire une redirection automatique vers la bonne url (comme le font
> certains CMS).
> Bref, comment vérifier que la catégorie dans l'url est bien correcte ?
>
> Niveau référencement, est-ce optimal d'afficher le nom de la catégorie
> dans l'url, ou juste le slug de l'article suffit ? (dans ce cas là je me
> prends la tête pour rien ^^)
>
> Merci d'avance pour votre aide :)
>
> (PS : je risque de revenir si je rencontre d'autres problèmes, vu que je
> débute avec Django :p)
> _______________________________________________
> django mailing list
> [email protected]
> http://lists.afpy.org/mailman/listinfo/django
>
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à