Frage

Könnten Sie mir bitte helfen, Hochladen von Bildern arbeitet an einer Ansicht mit django Formen zu bekommen?

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)

Mein HTML-Formular enthält bereits enctype="multipart/form-data"

War es hilfreich?

Lösung

Sie scheinen nicht Bindung des zu sein Datei Daten in das Formular .

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

Andere Tipps

Warum nicht die django-avatar Projekt (ich nehme an, Sie Benutzer Avatare zu einem Projekt hinzuzufügen, am Beispiel denken)?

Sie haben eine ziemlich saubere Lösung mit einem zusätzlichen Tag, das das Bild paßt die Größe, bevor es erstmals angezeigt wird. Sie speichern das Originalbild und definieren Sie die Bildgrößen, die Sie auf der Website akzeptieren wollen und der Rest wird automatisch für dich getan.

Das ist nur eine Frage der im Anschluss an den

scroll top