Django:在一个模板中使用表单的多个模型

问题:

我正在建立一个支持票跟踪应用程序,并有一些模型,我想从一个页面创建。门票通过ForeignKey属于客户。笔记也通过ForeignKey属于门票。我想选择一个客户(这是一个完整的单独的项目)或创建一个新的客户,然后创建一个机票,最后创建一个分配给新的票据的注释。
由于我对Django来说相当新鲜,我倾向于迭代地工作,每次尝试新功能。我玩过ModelForms,但是我想隐藏一些字段,并进行一些复杂的验证。我正在寻找的控制水平似乎需要formet或手工完成,完成一个乏味的,手工编码的模板页面,我想避免。
有没有一些可爱的功能我失踪了?有人有一个很好的参考或使用formets的例子?我花了一整个周末在他们的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()

 Here是自定义验证的文档。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Django: multiple models in one template using forms

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 28 = 30