我有一个非常简单的基于类的视图:
在views.py中:
class IncidentEdit(UpdateView):
model=Incident
fields = visible_field_list
sucess_url = '/status'
按原样工作正常。我已关联CreateView
, DeleteView
等等。我可以创建编辑和删除记录。现在为了微调项目,我需要添加字段验证。
我的问题:当我基于视图时,我应该在哪里放置基本验证代码'model='
而不是'form='
?
我可以更改所有内容以使用基于表单的视图,但整个想法是保持简单并且有效,除了模型声明中定义的基本“字段必需”类型验证之外,我只是没有表单验证。
例如,
我需要确保一个字段等于其他两个字段的总和。喜欢,
ClassRoomTotal = NumBoys + NumGirls
并提出一个validation error
为了ClassRoomTotal
如果总和与总计不匹配,则显示该字段。
提前致谢。
我知道这是一个简单的答案。
诸如“你不能那样做,你必须使用form=IncidentForm
并定义一个表单类。”会有所帮助。
class IncidentEdit(UpdateView):
...
def form_valid(self, form):
if form.cleaned_data['email'] in \
[i.email for i in Incident.objects.exclude(id=get_object().id)]:
# Assume incident have email and it should be unique !!
form.add_error('email', 'Incident with this email already exist')
return self.form_invalid(form)
return super(IncidentEdit, self).form_valid(form)
另外,希望这个链接有用。http://ccbv.co.uk/projects/Django/1.7/django.views.generic.edit/UpdateView/ http://ccbv.co.uk/projects/Django/1.7/django.views.generic.edit/UpdateView/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)