Comment puis-je mettre à jour un enregistrement existant plutôt que d'en ajouter un nouveau qui est mon problème. En ce moment j'essaye d'éditer des données de produit existantes dans le formulaire d'édition et sauve les nouveaux changements. Mais au lieu de mettre à jour les données produit existantes, j'obtiens un nouveau produit, donc tout est dupliqué. Un nouveau produit est créé au lieu de mettre à jour ses données existantes. Que puis-je faire pour résoudre ce problème?Django Modifier les données de formulaire: les données sont dupliquées au lieu d'être mises à jour
Voici mon code:
@login_required
def edit(request, id=None):
if request.method == 'POST':
form = ProductForm(request.POST)
if form.is_valid():
product = form.save(commit=False)
product.save()
return HttpResponseRedirect('/details/%s/' % (product.id))
Eternicode, je vous remercie pour la grande réponse, le code fonctionne bien maintenant et les données ne sont pas dupliquées en épargnant la forme après la date de modification. Sur la base de votre réponse, voici ce qui fonctionne:
@login_required
def edit(request, id=None):
if request.method == 'POST':
product = Product.objects.get(id__exact=id)
form = ProductForm(request.POST, instance=product)
print "PRODUCT POST"
if form.is_valid():
print "Display Form"
product = form.save(commit=False)
product.save()
return HttpResponseRedirect('/details/%s/' % (product.id))
Bon point, merci! – Sophie