我正在构建一个支持票证跟踪应用程序,并希望在一个页面上创建一些模型。票证通过ForeignKey属于客户。注释也通过ForeignKey属于票证。我想选择一个客户(这是一个单独的项目),或者创建一个新的客户,然后创建一个工单,最后创建一个分配给新工单的便笺。
由于我是Django的新手,因此我倾向于反复工作,每次尝试新功能。我玩过ModelForms,但是我想隐藏一些字段并进行一些复杂的验证。似乎我正在寻找的控制级别需要表单集或手动完成所有操作,并带有一个繁琐的手工编码模板页面,而我试图避免这种情况。
我缺少一些可爱的功能吗?有人对使用表单集有很好的参考或示例吗?我花了整个周末为他们准备API文档,但我仍然一无所知。如果我分解并手动编码所有内容,这是设计问题吗?
使用ModelForms实在不是太难。假设你有A,B和C表单。你打印出每个表单和页面,现在需要处理POST。
if request.POST(): a_valid = formA.is_valid() b_valid = formB.is_valid() c_valid = formC.is_valid() # we do this since 'and' short circuits and we want to check to whole page for form errors if a_valid and b_valid and c_valid: a = formA.save() b = formB.save(commit=False) c = formC.save(commit=False) b.foreignkeytoA = a b.save() c.foreignkeytoB = b c.save()
这是用于自定义验证的文档。