Hochladen von Bilddateien
-
21-08-2019 - |
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"
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.