Estoy usando la clase de User predeterminada de Django. He creado una clase UserImage para almacenar las imágenes de los usuarios.
class UserImage(models.Model): user_id = models.ForeignKey(User, blank=False) image_url = models.ImageField(upload_to='users/images/') En el formulario ImageUploadForm , solo quiero que el usuario elija image_url y establezca user_id en la identificación del usuario actualmente autenticado. Este es el formulario de carga de imágenes,
class ImageUploadForm(forms.ModelForm): class Meta: model = UserImage fields = {'image_url'}Normalmente guardo formularios modelo como este,
form = ProjectForm(request.POST or None, instance=project) if request.POST and form.is_valid(): form.save() return HttpResponseRedirect(reverse('projects:project_dashboard', kwargs={'project_id': project_id})) Entonces, ¿cómo incluyo el campo user_id aquí? ¿Debo hacer de este un campo oculto en la vista? ¿O hay una mejor opción?
Creo que la imagen será cargada por un usuario autenticado, ¿verdad? Quiero decir, solo después de iniciar sesión, él / ella puede cargar la imagen. En ese caso, simplemente puede usar request.user en su parámetro de usuario.
if form.is_valid(): user_image = form.save(commit=False) user_image.user_id = request.user.id user_image.save()