Django Imagefield ne fonctionne pas correctement via ModelForm
Je suis certain que je suis en train de faire quelque chose de vraiment bien évidemment stupide, mais j'ai essayé de le comprendre, pour quelques heures maintenant et rien ne saute aux yeux.
Je suis en utilisant un ModelForm donc je peux exposer quelques domaines à partir d'un modèle pour l'édition. 2x ImageField, 1x TextField. La Forme est traitée et le TextField œuvres. Les deux ImageFields ne fonctionnent pas et voilà pourquoi je suis ici aujourd'hui.
Je suis en utilisant Django 1.0.2
Voici le code (demandez si vous avez besoin de plus -- et je ne suis pas y compris le HTML parce que la partie semble bien fonctionner):
Modèle:
class Company(models.Model):
#...
logo = models.ImageField(upload_to='logos', blank=True)
intro_pic = models.ImageField(upload_to='intropics', blank=True)
intro_text = models.TextField(blank=True)
De la vue et de la forme:
def admin_edit(request, company_slug):
company = get_object_or_404(Company, slug = company_slug)
f = AdminEditForm(instance = company)
if request.method == 'POST':
f = AdminEditForm(request.POST, instance = company)
if f.is_valid():
print "Processing form"
print f.cleaned_data['intro_pic']
f.save()
return render_to_response('uadmin/edit.html', {'company':company, 'f':f}, RequestContext(request))
class AdminEditForm(ModelForm):
class Meta:
model = Company
fields = ['logo', 'intro_pic', 'intro_text']
Vous devez vous connecter pour publier un commentaire.
Bien je me sens comme un idiot. Afin de Django pour être en mesure de traiter les fichiers téléchargés, vous avez besoin de transmettre la requête.Les FICHIERS de variable de la forme (logique, non?!!!)
Dans mon cas, la ligne suivante est:
À:
Une autre chose à vérifier (si vous avez quelque chose de ce genre dans l'avenir), c'est que votre formulaire est en plusieurs parties. Votre
<form>
balise devrait ressembler à quelque chose comme ceci:enctype="multipart/form-data"
partie