我将使用文档模型作为示例:
class Car(models.Model):
manufacturer = models.ForeignKey('Manufacturer')
# ...
class Manufacturer(models.Model):
# ...
假设我想创建一个表单来添加新的制造商,并且在此表单中我希望能够添加新车。如何用django-forms完成?
甚至可能吗?
提前感谢您的帮助!
答案 0 :(得分:1)
答案简短:
您想要modelformset_factory
,请在此处记录:http://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#model-formsets
仍然相当简短的答案,但有几个需要注意的问题:
在处理方面,如果您同时创建制造商和多个Car实例,则在保存单个车辆(必须参考制造商)之前,您需要确保先保存制造商。如果可以帮助,请确保在数据库事务中发生这种情况。
还有一点需要注意:如果这对您来说有点混乱,请记住,没有严格的规则说您只能在请求中处理一个表单。您在HTML forms.Form
标记中只有多个<form>
(或其子类)对象,这些对象会发布到单个请求位置,该位置会单独处理每个表单并将其保存。同样,使用数据库事务,以便在最后某些事情失败时,整个事情都会被回滚,用户可以纠正错误而不会在数据库中出现错误或孤立的数据。