我对Django Forms很新,而且我遇到了一个我无法解决的问题。我一直在使用Google和阅读文档,但是我找不到解释这个地方的地方。我的问题是,我有一个动物Model
和ModelForm
:如何在发生表单验证错误时指定它们?
class Animal(models.Model):
name = models.CharField(max_length=300)
age = models.PositiveSmallIntegerField()
race = models.ForeignKey(Race)
description = models.TextField()
state = models.ForeignKey(State)
pub_date = models.DateTimeField(auto_now_add=True)
adoption_limit = models.DateTimeField(blank=True, null=True)
location = models.ForeignKey(Location)
publisher = models.ForeignKey(User)
def __unicode__(self):
return self.name
class AnimalForm(ModelForm):
class Meta:
model = Animal
我渲染通过urls.py这个信息,称这样的观点:
@login_required
def new_animal(request):
if request.method == "POST":
form = AnimalForm(request.POST)
if form.is_valid():
form.save()
return render_to_response('/')
else:
variables = RequestContext(request, {'e': form.errors})
return render_to_response('web/error.html', variables)
else:
form = AnimalForm()
variables = RequestContext(request, {'form': form})
return render_to_response('web/animal_form.html', variables)
看来,我有一个错误引入adoption_limit
字段,所以数据不会保存在数据库中。这是因为我只是在表单显示的文本字段中设置日期而不是时间。
我想知道我可以做两件事情:
- 我怎么能再次发送错误信息的形式,这样我就可以在下添加一个文本,我也没有设置场是否正确?也就是说,像管理员那样。
- 我怎样才能把相同的输入类型
DateTimeField
,我在管理界面? (与今天和现在的功能)
我可以调用相同的模板来显示错误吗?在表单中可以看到什么是好的,但是在错误的字段旁边显示一条消息? – amb
对于'DateTime'小部件,我认为我将改变'Date'字段的模型,我并不需要小时。 – amb
关于模板,您可以使用同一个(然后再次显示相同的表单)。 如果您使用日期字段,请记住默认格式为'yyyy-mm-dd',除非您更改它。 –