Caricamento di file di immagine
-
21-08-2019 - |
Domanda
La prego di aiutarmi a ottenere il caricamento di immagini a lavorare su una vista con forme 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)
Il mio modulo HTML contiene già enctype="multipart/form-data"
Soluzione
Non mi sembra di essere vincolante il file di dati per il modulo .
profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.profile)
Altri suggerimenti
Perché non usare il href="http://github.com/ericflo/django-avatar/tree/master" rel="noreferrer"> django-avatar progetto
Hanno una soluzione abbastanza carino con un tag in più che ridimensiona l'immagine prima di visualizzarla prima volta. Memorizzare l'immagine originale e definire le dimensioni delle immagini che si desidera accettare sul sito web e il resto è fatto automagicamente per voi.
Questa è solo una questione di seguire il docs .
Non si utilizza l'inizializzazione forma corretta nel tuo post. In particolare si sta perdendo request.FILES parametro:
form = ProfileForm(request.POST, request.FILES)
dopo la di sopra del file caricato può essere recuperato dal matrice FILES:
photo_file = request.FILES['photo']