Créer la vue pour afficher un article

Exclusif Premium

Débloquez votre potentiel ! ✨

Cette session fait partie de notre programme Premium exclusif

+100h de formations exclusives
+180 exercices de code avancés
+100h de mentorats en réécriture
20 projets guidés pas à pas
Mentorats groupés hebdomadaires
Support individuel avec nos mentors

Prêt à passer au niveau supérieur ?

Découvrez tous les avantages Premium et transformez votre apprentissage dès aujourd'hui!

Inscris-toi

(c'est gratuit !)

Un compte est nécessaire pour participer aux discussions.

Créer un compte

Toutes les questions

Thibaut

2 octobre 2024

Résolue
1 réponse

Problème d'affichage dans la vue de détail du blog

Salut Docstring j ai ecris le code pour affiche ma vue de deatial mais je ne vois aucun article afficher aliors tous mon code fonctione bien. Toutres mes autres vues fonctionnent sans souci (Create Update delete) ![](/media/mentoring/question/624fb8/grafik-1425x433.webp) voila code au niveau de mon fichier hltml. NOter que j ai pas voulu intergrer le block Title, mais ca ne dois pas poser un problem vu que toutes mes autres vues fonctionent sans souci. ![](/media/mentoring/question/624fb8/grafik-1830x970.webp) ![](/media/mentoring/question/624fb8/grafik-1826x897.webp) ![](/media/mentoring/question/624fb8/grafik-1830x922.webp) Toutes mes vues fonctinnent bien. La vue de tail ne m:affiche pas d'erreur mais elle n'affiche pas aussi mes aricles. ```django {% extends "base.html" %} {% block content %} {{ post.title }} {{ post.content|linebreaks|safe }} {% endblock %} ``` ```python from django.urls import path from posts.views import BlogHome, BlogPostCreate, BlogPostUpdate, BlogPostDetail, BlogPostDelete app_name = "posts" urlpatterns = [ path('', BlogHome.as_view(), name="home"), # ici c'est la vue d#ensemble du blog path('create/', BlogPostCreate.as_view(), name="create"), # fonctione path('/', BlogPostDetail.as_view(), name="post"), # pas vraiment a revoir path('edit//', BlogPostUpdate.as_view(), name="edit"), # fonctione path('delete//', BlogPostDelete.as_view(), name="delete"), # fonctione ] ``` ```python meas vues from django.contrib.auth.decorators import login_required from django.shortcuts import render from django.urls import reverse_lazy from django.utils.decorators import method_decorator from django.views.generic import ListView, CreateView, UpdateView, DetailView, DeleteView from posts.models import BlogPost class BlogHome(ListView): model = BlogPost context_object_name = "posts" def get_queryset(self): queryset = super().get_queryset() if self.request.user.is_authenticated: return queryset return queryset.filter(published=True) @method_decorator(login_required, name='dispatch') # restreindre cette vu au user pas connecter class BlogPostCreate(CreateView): model = BlogPost template_name = "posts/blogpost_create.html" fields = ['title', 'content', ] @method_decorator(login_required, name='dispatch') class BlogPostUpdate(UpdateView): model = BlogPost template_name = "posts/blogpost_edit.html" fields = ['title', 'content', 'published', ] @method_decorator(login_required, name='dispatch') class BlogPostDetail(DetailView): model = BlogPost content_object_name = "post" @method_decorator(login_required, name='dispatch') class BlogPostDelete(DeleteView): model = BlogPost content_object_name = "post" success_url = reverse_lazy("posts:home") ``` ```python tous mes urls from django.conf.urls.static import static from django.contrib import admin from django.urls import path, include from store.views import index, product_detail, add_to_cart, cart,delete_cart from accounts.views import signup, logout_user, login_user from shop import settings urlpatterns = [ path('', index, name='index'), path('admin/', admin.site.urls), path('blog/', include('posts.urls')), path('signup/', signup, name='signup'), path('login/', login_user, name='login'), path('logout/', logout_user, name='logout'), path('cart/', cart, name='cart'), path('cart/selete', delete_cart, name='delete_cart'), path('product/', product_detail, name="product"), path('product//add-to-cart/', add_to_cart, name="add_to_cart"), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ``` ```python Mes URls concatenees from django.urls import path from posts.views import BlogHome, BlogPostCreate, BlogPostUpdate, BlogPostDetail, BlogPostDelete app_name = "posts" urlpatterns = [ path('', BlogHome.as_view(), name="home"), # ici c'est la vue d#ensemble du blog path('create/', BlogPostCreate.as_view(), name="create"), # fonctione path('/', BlogPostDetail.as_view(), name="post"), # pas vraiment a revoir path('edit//', BlogPostUpdate.as_view(), name="edit"), # fonctione path('delete//', BlogPostDelete.as_view(), name="delete"), # fonctione ] ``` ```html mon fichier de base html La boutique de Couture Accueil {% if request.user.is_authenticated %} Ajouter un articlede blog {% endif %} La boutique de couture {% if user.is_authenticated %} {{ user.username }} Deconnection {% else %} Connection S'inscrie {% endif %} {% if user.cart %} Voir le panier({{ user.cart.orders.count }}) {% endif %} {% block content %} {% endblock %} ``` Merci d 'avance Cordialement Thibaut

Loudo

18 août 2023

Résolue
2 réponses

L'ordre des path dans urlspatterne a une importance ?

Bonjour, J'ai bug étrange sur l'url de ma vue "BlogPostCreate" crée précédement. Tout fonctionnait jusqu'ici. J'avais ça comme ordre dans mes urlpatterns : ``` from django.urls import path from posts.views import ( BlogHome, BlogPostCreate, BlogPostUpdate, ) app_name = "posts" urlpatterns = [ path('', BlogHome.as_view(), name='home'), path('create/', BlogPostCreate.as_view(), name='create'), path('edit/', BlogPostUpdate.as_view(), name='edit'), ] ``` Pour cette partie de la vidéo je crée la vue BlogPostDetail et je définie mes urls comme ceci : ``` #... app_name = "posts" urlpatterns = [ path('', BlogHome.as_view(), name='home'), path('/', BlogPostDetail.as_view(), name='post'), path('create/', BlogPostCreate.as_view(), name='create'), path('edit/', BlogPostUpdate.as_view(), name='edit'), ] ``` Et là bug ma vue create ne focntionne plus et le reste oui !🤨 Et juste en changeant l'ordre des chemins, en mettant 'create' en deuxième position ça refonctionne : ``` app_name = "posts" urlpatterns = [ path('', BlogHome.as_view(), name='home'), path('create/', BlogPostCreate.as_view(), name='create'), path('/', BlogPostDetail.as_view(), name='post'), path('edit/', BlogPostUpdate.as_view(), name='edit'), ] ``` Est ce que c'est normale ? Dans la vidéo Thibault il met 'create en troisième position et ça fonctionne chez lui !?! 🤔

Ce n'est pas fini...

Tu as complété % du parcours 🔥

Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.

Rechercher sur le site

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.