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) 
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.
Toutes mes vues fonctinnent bien. La vue de tail ne m:affiche pas d'erreur mais elle n'affiche pas aussi mes aricles.
{% extends "base.html" %}
{% block content %}
<article>
<h1> {{ post.title }}</h1>
<div> {{ post.content|linebreaks|safe }} </div>
</article>
{% endblock %}
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('<str:slug>/', BlogPostDetail.as_view(), name="post"), # pas vraiment a revoir
path('edit/<str:slug>/', BlogPostUpdate.as_view(), name="edit"), # fonctione
path('delete/<str:slug>/', BlogPostDelete.as_view(), name="delete"), # fonctione
]
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")
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/<str:slug>', product_detail, name="product"),
path('product/<str:slug>/add-to-cart/', add_to_cart, name="add_to_cart"),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
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('<str:slug>/', BlogPostDetail.as_view(), name="post"), # pas vraiment a revoir
path('edit/<str:slug>/', BlogPostUpdate.as_view(), name="edit"), # fonctione
path('delete/<str:slug>/', BlogPostDelete.as_view(), name="delete"), # fonctione
]
mon fichier de base html
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8"/>
<title>La boutique de Couture </title>
</head>
<body>
<nav>
<a href="{% url 'posts:home' %}"> Accueil </a>
{% if request.user.is_authenticated %}
<a href="{% url 'posts:create' %}"> Ajouter un articlede blog </a>
{% endif %}
</nav>
<a href="{% url 'index' %}">
<h2> La boutique de couture </h2> <!-- ce lien sera cliquable grace au nom de l'url -->
</a>
{% if user.is_authenticated %}
{{ user.username }}
<a href="{% url 'logout' %}">Deconnection</a>
{% else %}
<a href="{% url 'login' %}">Connection</a>
<a href="{% url 'signup' %}">S'inscrie</a>
{% endif %}
{% if user.cart %}
<p>
<a href="{% url 'cart' %}">Voir le panier({{ user.cart.orders.count }})</a>
</p>
{% endif %}
{% block content %}
{% endblock %}
</body>
</html>
Merci d 'avance
Cordialement Thibaut
Salut Thibaut,
De ce que je vois, dans tes vues DetailView et DeleteView, tu as utilisé content_object_name au lieu de context_object_name. La bonne syntaxe pour le contexte est context_object_name. Essaie déjà de changer ça et voit si règle entièrement ton problème d'affichage :)
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte