Je suis certain que je fais quelque chose de vraiment manifestement stupide, mais j'ai essayé de le comprendre depuis quelques heures maintenant et rien ne me saute aux yeux. J'utilise un ModelForm pour exposer quelques champs d'un modèle à éditer. 2x ImageField, 1x TextField. Le formulaire est traité et le TextField fonctionne. Les deux ImageFields ne fonctionnent pas et c'est pourquoi je suis ici aujourd'hui.Django Imagefield ne fonctionne pas correctement via ModelForm
J'utilise Django 1.0.2
Voici le code approprié (demandez si vous avez besoin de plus - et je ne suis pas compris le code HTML parce que cette partie semble fonctionner très bien):
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)
Voir et 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']
Merci! Dans mon cas, il me manquait le 'enctype =" multipart/form-data "' partie –
idiot compagnon ici – Chase
C'est une chose étonnamment facile à manquer. J'ai depuis trouvé que laisser Crispy gérer mes étiquettes de forme (ainsi que d'autres choses) aide. – Oli