J'ai un objet Tâche et un formulaire qui l'enregistre. Je veux automatiquement créer un champ created_by pour l'utilisateur actuellement connecté. Donc, mon point de vue est le suivant:Comment ajouter une valeur par défaut sur le formulaire de sauvegarde django?
def new_task(request, task_id=None):
message = None
if task_id is not None:
task = Task.objects.get(pk=task_id)
message = 'TaskOK'
submit = 'Update'
else:
task = Task(created_by = GPUser(user=request.user))
submit = 'Create'
if request.method == 'POST': # If the form has been submitted...
form = TaskForm(request.POST, instance=task)
if form.is_valid():
task = form.save(commit=False);
task.created_by = GPUser(user=request.user)
task.save()
if message == None:
message = 'taskOK'
return tasks(request, message)
else:
form = TaskForm(instance=task)
return custom_render('user/new_task.html',
{'form': form, 'submit': submit, 'task_id':task.id},
request)
Le problème est, vous l'aurez deviné, le champ created_by n'est pas enregistré. Des idées? Merci
OK, je suis un idiot. GPUser est en fait le profil de l'utilisateur, et ce dont j'ai besoin est de le récupérer au lieu d'en créer un nouveau. – Nacho