Estoy tratando de ocultar el campo enviado por en mis formularios.py porque no quiero que el usuario cargue la tarea en nombre de otro usuario. Entonces, lo que estoy haciendo es ocultar el campo, pero antes de ocultarlo, estoy configurando el valor del usuario que inició sesión en ese texto de entrada usando javascript, pero recibo este error. (Campo oculto enviado_por) Este campo es obligatorio. formularios.py
class assignmentUploadForm(ModelForm): class Meta: model = Submissions fields = ('submitted_by', 'submitted_to', 'submission_title', 'submission_file', 'submission_status') widgets = { 'submitted_by': forms.TextInput(attrs={'class': 'form-control', 'type': 'hidden', 'id': 'user', 'value': ''}), 'submitted_to': forms.Select(attrs={'class': 'form-control'}), 'submission_title': forms.Select(attrs={'class': 'form-control'}), } template <form method="post" enctype="multipart/form-data" style="margin-left: 240px;"> {% csrf_token %} {{form.as_p}} <input type="submit"> var name = "{{user.username}}" document.getElementById('user').value = name; views.py class AddAssignmentView(CreateView): model = Submissions form_class = assignmentUploadForm template_name = 'project/assignment.html'Sería mejor no tenerlo en el formulario en absoluto.
Todo lo que alguien necesita hacer es inspeccionar el elemento y cambiar el tipo de oculto.
Puede establecer el valor de submit_by para el usuario actual en form_valid()
class assignmentUploadForm(ModelForm): class Meta: model = Submissions fields = ('submitted_to', 'submission_title', 'submission_file', 'submission_status') widgets = { 'submitted_to': forms.Select(attrs={'class': 'form-control'}), 'submission_title': forms.Select(attrs={'class': 'form-control'}), } class AddAssignmentView(CreateView): model = Submissions form_class = assignmentUploadForm template_name = 'project/assignment.html' def form_valid(self, form): self.object = form.save(commit=False) self.object.submitted_by = self.request.user self.object.save() return HttpResponseRedirect(self.get_success_url())