Pregunta

Podría por favor ayudarme a conseguir carga de imágenes que trabaja en una vista con las formas de Django?

Models.py

class User_Profile(models.Model):
    user = models.OneToOneField(User, unique=True, related_name='profile')
    photo  = models.ImageField(upload_to = 'profiles/', null=True, blank=True)

Forms.py

class ProfileForm(forms.ModelForm):
        class Meta:
            model = User_Profile
            exclude = ('user')

Views.py

    if request.method == 'POST':
        profile_form = ProfileForm(request.POST, instance=request.user.profile)

        if profile_form.is_valid():
            profile_form.save()
            return HttpResponseRedirect('/panel/correct/')

    else:
        profile_form = ProfileForm(instance=request.user.profile)

Mi forma html ya contiene enctype="multipart/form-data"

¿Fue útil?

Solución

Usted no parece ser la unión del presentar datos al formulario .

profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.profile) 

Otros consejos

Esto es sólo una cuestión de seguir la docs .

No está utilizando el formulario de inicialización correcta en su puesto. En particular, se echa en falta request.FILES parámetro:

 form = ProfileForm(request.POST, request.FILES)

después de lo anterior, el archivo cargado se puede recuperar de la matriz ARCHIVOS:

 photo_file = request.FILES['photo']
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top