2010-11-23 17 views
4

voici mon problème, je l'ai créé cette forme:Django: ne peut pas lier une image téléchargée à une forme ImageField()

class SettingsForm(forms.Form): 
    ... 
    logo = forms.ImageField() 
    ... 

Le téléchargement fonctionne très bien et je réussi à afficher l'image mais je peux Ne le liez pas à la forme. Voici ce que je l'ai fait:

data = ... 
files = {'logo': SimpleUploadedFile('logo.jpg', logo.read())} 
form = SettingsForm(data=data, files=files) 

l'objet logo est un ImageFieldFile. J'ai testé la méthode de lecture dans un shell, ça va. Je n'ai aucun avertissement affichant la page, seulement "aucun fichier choisi".

Merci pour votre aide. Désolé pour le format de ce post, je suis nouveau sur stackoverflow et sur django.

+0

SimpleUploadedFile par défaut 3ème paramètre de content_type à ' text/plain ', pourrait-il être le problème? –

+0

Ne fonctionne toujours pas avec 'image/jpeg' – Adrien

Répondre

1

Je ne suis pas sûr de cela, mais d'après la documentation de django, sur les formes de liaison, les données et les fichiers ne sont pas kwargs, mais sont args, alors essayez ceci:

form = SettingsForm(data, files) 
+0

Malheureusement, ce code fonctionne: si request.method == 'POST': form = ParamètresForm (data = request.POST, fichiers = request.FILES, ...) J'utilise kwargs parce que j'appelle Super() dans mon code de formulaire. Vous ne pouvez pas le voir parce que je n'ai pas collé le code complet de mon formulaire, devrais-je? Thx pour votre aide – Adrien