Django:用户个人资料创建表单

时间:2012-08-31 14:06:31

标签: python django forms models

正如我所理解的那样,扩展User Django模型的标准方法是实施profiles

这非常适合我,因为我有3种类型的配置文件(3个不同的Model子类)都基于User模型的唯一性和身份验证。

但是,我无法决定实施用户创建表单的最佳方法。我应该......

  1. 使用mixins:使用ModelForm继承model=User,使用model=Profile继承save(),手动覆盖clean()Form以调用基础的方法并执行外键分配。

  2. 使用组合:继承ModelForms并手动实例化和管理两个save()

  3. 单独实例化表单,并以手动方式{{1}}表示它们。

  4. 我没想到的最佳方式。

  5. 我很感激(尽管很少)实施,所以我可以肯定我正在拨打正确的电话。

    提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以编写单个表单,作为Profile模型和contrib用户模型的组合ModelForm。要做到这一点,需要对init上的表单kwargs进行一些操作。请参阅以下代码段:http://djangosnippets.org/snippets/2081/