Jestem pewien, że robię coś naprawdę oczywistego, ale próbuję to rozgryźć przez kilka godzin i nic nie wyskakuje na mnie.Django Imagefield nie działa poprawnie za pomocą ModelForm
Używam ModelForm, więc mogę wystawić kilka pól z modelu do edycji. 2x ImageField, 1x TextField. Formularz jest przetwarzany, a TextField działa. Dwa ImageFields nie działają i dlatego właśnie jestem tutaj dzisiaj.
Używam Django 1.0.2
Oto odpowiedni kod (zapytać, czy trzeba więcej - i nie jestem w tym HTML, ponieważ ta część wydaje się działać dobrze):
model :
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)
Zobacz i forma:
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']
Dzięki! W moim przypadku brakowało mi "enctype =" multipart/form-data "' part –
, idiota tutaj – Chase
Zaskakująco łatwo jest tęsknić. Od tego czasu pomagam Crispy w obsłudze znaczników formularzy (a także innych rzeczy). – Oli