Télécharger des fichiers d'image
-
21-08-2019 - |
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"
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.