我是Django初学者。我认为我的问题微不足道,但我无法解决它。 我有一个名为文档模型与一个FileField字段:ModelForm如何通过FileField添加django模型的新实例?
class Document(models.Model):
file = models.FileField(upload_to="documents")
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
category = models.ForeignKey(DocumentCategory)
title = models.CharField(max_length=255, unique=True)
description = models.TextField()
def __unicode__(self):
return self.title
我想这样的ModelForm添加新的实例这个类:
class DocumentForm(ModelForm):
class Meta:
model = Document
在views.py我有:
def add_document(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
return render_to_response('add_document.html', {'form':form}, context_instance=RequestContext(request))
else:
form = DocumentForm()
return render_to_response('add_document.html', {'form':form}, context_instance=RequestContext(request))
此模板(即add_document.html):
{% extends "base.html" %}
{{block content %}
<form enctype="multipart/form-data" method="post" action="">{% csrf_token %}
{{form}}
<input type="submit" value="Add document" />
</form>
{% endblock %}
在Admin Interface添加模型到数据库正常工作并添加文件处于“upload_to”本地化中。我的表单不起作用。当我尝试提交表单时,我得到表单filefield错误:“此字段是必需的!”在模型中没有FileField之前,它可以工作。 我有Django 1.2.5 我用它折磨了3天而没有任何东西!我很绝望。对不起,我的语言。请帮忙!
这很奇怪。除了奇怪的缩进之外,找不到任何问题 – 2011-03-19 14:51:12
尝试放入一个'import pdb; pdb.set_trace()'在测试POST方法后立即执行。然后检查请求对象和request.FILES以获取线索。祝你好运。 – 2011-03-19 15:22:21
将{{form}}默认为{{form.as_p}}'吗? – 2011-03-19 15:24:57