Je n'arrive pas à voir les données préexistantes du formulaire lors de la mise à jour. Les formulaires fonctionnent bien, la base de données est mise à jour après la soumission, mais pour soumettre le formulaire, l'utilisateur doit saisir toutes les données du formulaire (y compris les données qui ne seront pas mises à jour). Lors de la nouvelle saisie, les données précédentes ne sont pas visibles. Existe-t-il un moyen d'afficher les données actuelles de l'instance de modèle en cours de mise à jour dans les champs du formulaire ?
Formes :
UpdateSomethingForm(forms.ModelForm):
class Meta:
model = Something
fields = ['field1', 'field2', 'field3']
Vues :
def update_something(request, object_pk):
form = UpdateSomethingForm()
context_dict = {}
try:
instance = Something.objects.get(pk=object_pk)
context_dict['instance'] = instance
except Something.DoesNotExist:
context_dict['instance'] = None
if request.method == 'POST':
form = UpdateSomethingForm(request.POST, instance=instance)
if form.is_valid():
form.save(commit=True)
return HttpResponseRedirect('/home')
else:
print(form.errors)
context_dict['form'] = form
return render(request, 'form.html', context=context_dict)
Html :
<form role="form" method="post">
{% csrf_token %}
{{ form|bootstrap }}
<div class="form-group">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>