Bonsoir,
J'utilise pour la première fois les slugs dans Django. Je m'en sortais pas trop mal jusqu'à ce que je décide de mettre les urls de mes articles dans mes templates. Depuis, j'obtiens l'erreur suivante :
1 | Reverse for 'view_article' with arguments '()' and keyword arguments '{'slug': 'mes-debuts-en-aquariophilie'}' not found. 1 pattern(s) tried: ['article/(?P<slug>\\d+)$'] |
Voici mon blog/urls.py
:
1 2 3 4 5 6 7 8 | from django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.index, name='index'), url(r'^article/(?P<slug>\d+)$', views.view_article, name='view_article'), url(r'^category/(?P<slug>\d+)$', views.view_category, name='view_category') ] |
Voici mon models.py
(un peu raccourci) :
1 2 3 4 5 6 | class Article(models.Model): title = models.CharField(max_length=100, unique=True, verbose_name='titre') slug = models.SlugField(max_length=100, unique=True, verbose_name='slug') body = models.TextField(verbose_name='contenu') posted = models.DateField(db_index=True, auto_now_add=True, verbose_name='date de création') category = models.ForeignKey('blog.Category', verbose_name='Catégorie') |
Voici la fonction views.view_article
qui pose problème :
1 2 3 4 5 6 7 8 9 10 | def index(request): return render_to_response('blog/index.html', { 'categories': Category.objects.all(), 'articles': Article.objects.all() }) def view_article(request, slug): return render_to_response('blog/view_post.html', { 'article': get_object_or_404(Article, slug=slug) }) |
Et voici la ligne qui importe l'url de l'article :
1 | <a href="{% url "view_article" slug=article.slug %}" class="btn btn-default">Continuer la lecture</a> |
Je ne comprend pas d'où vient le problème… Il y a t-il des conséquences à l'utilisation des slugs que je n'aurais pas prises en compte ?
Merci pour votre aide, Joyeuses fêtes.
+0
-0