django 一个表格多个表格

Posted

技术标签:

【中文标题】django 一个表格多个表格【英文标题】:django one form multiple tables 【发布时间】:2011-08-07 03:38:14 【问题描述】:

一个表格收集名字、电子邮件、密码和成绩。

我可以使用类似的方法将此信息保存在两个表中吗?

 def save(self):
    new_user = User.objects.create_user(first=self.cleaned_data['first'], email=self.cleaned_data['email'], password=self.cleaned_data['password'])
    new_grade = Grade.objects.create_grade(grade=self.cleaned_data['grade'])
    return new_user, new_grade

这可能吗?有什么更好的方法来做到这一点?

【问题讨论】:

【参考方案1】:

做这样的事绝对有可能,也很正常。表单不必仅仅因为 ModelForms 就必须类似于模型。表单只是描述特定用例所需输入的一种方式。您如何处理这些数据完全取决于您。这包括在许多不同的模型中保存它。

请注意,您不必以常规形式返回您创建的新实例。这只是惯例。如果您需要在保存后访问新实例,那么一定要返回它们。

【讨论】:

【参考方案2】:

最好像这样编码:

if new_user:
    ## create other tables..

【讨论】:

我不确定我是否完全关注你...你能详细说明一下吗? 您这样做的方式是正确的,但您可以对代码有更多控制权,例如将 new_user 实例放入 if 语句中以确保用户创建然后创建与您的模型关联的其他实例,当然在你的情况下你不必像我一样编码,但如果grade关联user你必须确保user先创建然后创建等级..,我希望声明清楚。 还要确保使用事务原子,如果在创建父对象时在创建子对象时出现一些错误,则回滚查询。

以上是关于django 一个表格多个表格的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 excel 电子表格导入 django 模型

表格分页 [Bootstrap - Django]

(Django) HTML:表格列垂直显示

Django:清理和验证相互依赖的表格

从 django 模板语言生成动态 HTML 表格

Django联系表格邮件发送[重复]