Django使用同一个模板实现新增和编辑 记录使用同一个html模板实现组织机构的新增和编辑,并对重名内容进行验证。
这篇文章与
使用django-crispy-forms心得
中的例子代码类似,可以结合参考,本文代码与之相比,主要增加了验证部分以及crispy自定义layout。
同时可以参考Django-tables2进行表格展示,基本上就能了解Django增删改查功能的一种实现了。
一、定义Url
通过id参数区分新增和编辑,id为0则是新增,其他则是编辑。
二、模板中的更新与创建按钮
模板名称:create_update_unit.html,通过bCreate控制显示更新或者创建。
三、Form与Model的创建
讲解:
1.增加了一个字段is_update,感知自己是更新状态还是新建状态。
四、View中的实现
讲解:
1.根据unit_id判断是更新还是新建,0就是新建,同时设置了bCteate的值。
2.根据bCreate,界面就会显示新建或者更新按钮。
3.OrgUnitForm如果是更新,就要用instane=cur_org_unit赋值,界面上就直接将这个model的各种值显示出来。
4.创建OrgUnitForm时要告知它自己是更新还是新建。
五、验证unit是否已经存在表单验证一般在form中用clean,验证逻辑如下:
新建,如果组织机构下存在重名,提示报错。
更新,排除自己后,如果组织机构下存在重名,提示报错。
六、调用
用新建调用举例,编辑和删除类似
七、效果
领取专属 10元无门槛券
私享最新 技术干货