Conseil Django : add_to_cart
Bonsoir,
Dans mon projet avec les idées, je souhaite qu'un utilisateur puisse les ajouter dans un panier.
On n'est pas dans un système traditionnel d'un article avec un stock. Du coup je n'ai pas créé de modèle intermédiaire du style "Order".
C'est pour ça que si l'idée est déjà dans le panier j'ai une condition qui va faire que... Justement c'est là où j'ai un doute.
J'hésite à rediriger vers une page du style "Idée déjà dans le panier" mais ça fait un peu solution de facilité ? Ou ça peut très bien se faire comme ça ?
En fait j'ai un doute sur la meilleure manière d'afficher l'erreur à l'utilisateur dans ce cas précis.
Merci d'avance
EDIT : en fait je pense qu'utiliser messages de django.contrib peut être bien dans cas précis. Car je peux afficher mon erreur après le redirect. Je viens de tester ça fonctionne. De plus Thibault tu l'utilises dans le docshop si je ne dis pas de bêtise ^^
def add_to_cart(request, slug):
user = request.user
cart, _ = Cart.objects.get_or_create(buyer=user)
idea = get_object_or_404(Idea, slug=slug)
if idea in cart.ideas.all():
# on ne peut pas ajouter deux fois la même idée
messages.add_message(request, messages.ERROR, "L'idée est déjà dans le panier")
return redirect("ideas:all")
else:
cart.ideas.add(idea)
# on ajoute au panier et on va dans la vue panier
return redirect("ideas:cart")
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte