Hey, j'ai cherché autour de faire cela (en particulier ce Q: Django edit form based on add form?) mais je ne peux tout simplement pas le faire fonctionner. Le problème que j'ai est que le formulaire crée toujours un nouvel objet, au lieu de modifier l'existant.Comment éditer/ajouter des objets utilisant le même formulaire django?
Voici mon code:
def new_task(request, task_id=None):
if task_id is not None:
task = Task.objects.get(pk=task_id)
else:
task = Task()
if request.method == 'POST': # If the form has been submitted...
form = TaskForm(request.POST, instance=task)
if form.is_valid():
form.save();
return tasks(request, 'Task #%s created successfully.' % (task.id))
else:
form = TaskForm(instance=task)
return custom_render('user/new_task.html',
{'form': form},
request);
Des indices sur ce que je suis absent? Merci
Modifier: définitions de formulaire ajoutées.
class TaskForm(ModelForm):
description = CharField(max_length = 1500,
widget= forms.Textarea(attrs={'class':'task-description'}),
required=True)
class Meta:
model = Task
Juste pour ajouter plus d'informations, le formulaire est rempli correctement avec les données de l'objet lors de l'édition et il apparaît vide lors de l'ajout d'un nouveau. Tout fonctionne correctement en dehors de ce problème. – Nacho
Avez-vous remplacé la méthode d'enregistrement des formulaires? Pouvez-vous montrer la définition du formulaire? –
Je viens d'ajouter le formulaire def. Non, je n'ai pas écrasé la méthode de sauvegarde ... – Nacho