Question

Pourriez-vous s'il vous plaît me aider à obtenir le téléchargement d'images à travailler sur une vue avec des formes 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)

Mon formulaire HTML contient déjà enctype="multipart/form-data"

Était-ce utile?

La solution

Vous ne semblez pas être liant la fichier de données à la forme .

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

Autres conseils

Pourquoi ne pas utiliser le projet django-avatar (Je suppose que vous envisagent d'ajouter des avatars utilisateur à votre projet, basé sur l'exemple)?

Ils ont une solution assez soignée avec une étiquette supplémentaire qui redimensionne l'image avant de l'afficher première fois. Vous pouvez stocker l'image d'origine et de définir les tailles d'image que vous souhaitez accepter sur le site et le reste est fait automagiquement pour vous.

Ceci est juste une question de suivre la

scroll top