我在制作表单时遇到了麻烦。正如我所看到的,一切都很好,但is_valid()
总是返回False(我必须在shell模式下检查它,因为在模板中它不显示任何错误)。我错过了什么吗?无法通过图像验证django表单
如果有人想对它进行测试,可以从http://gitorious.org/e-cidadania
forms.py
from django.forms import ModelForm
from e_cidadania.apps.spaces.models import Space
class SpaceForm(ModelForm):
class Meta:
model = Space
views.py
@permission_required('Space.add_space')
def create_space(request):
space = Space()
if request.POST:
form = SpaceForm(request.POST, request.FILES, instance=space)
if form.is_valid():
handle_uploaded_file(request.FILES['file'])
form.author = request.user
form.date = datetime.datetime.now()
form.save()
return render_to_response('/')
else:
form = SpaceForm()
return render_to_response('spaces/add.html',
{'form': form},
context_instance=RequestContext(request))
models.py下载
class Space(models.Model):
name = models.CharField(_('Name'), max_length=100, unique=True,
help_text=_('All lowercase. Obligatory.'))
description = models.TextField(_('Description'))
date = models.DateTimeField(auto_now_add=True)
author = models.ForeignKey(User, verbose_name=_('Author'))
logo = models.ImageField(upload_to='spaces/logos',
verbose_name=_('Logotype'),
help_text=_('100px width, 75px height'))
banner = models.ImageField(upload_to='spaces/banners',
verbose_name=_('Banner'),
help_text=_('75px height'))
authorized_groups = models.ManyToManyField(Group,
verbose_name=_('Authorized groups'))
mod_debate = models.BooleanField(_('Debate module'))
mod_proposals = models.BooleanField(_('Proposals module'))
mod_news = models.BooleanField(_('News module'))
mod_cal = models.BooleanField(_('Calendar module'))
mod_docs = models.BooleanField(_('Documents module'))
是的,我宣布它作为一个多形式,和is_multipart()返回true。我还没有尝试过form.errors呢(对我很耻辱!) – 2011-02-22 19:49:54
是的,让我们看看表单是否抱怨。 – 2011-02-22 20:40:11