【问题标题】:Do I need to override save method to add data to different models from django UserCreationForm我是否需要覆盖保存方法才能将数据从 django UserCreationForm 添加到不同的模型
【发布时间】:2012-04-23 06:57:44
【问题描述】:

我想在 UserCreationForm 中添加另一个字段以显示在 RegistrationForm 中,为此我在 stackoverflow 上看到了几个示例。我的意思是通过定义从 UserCreationForm 继承的不同 RegisterForm 的示例,如stackoverflow的这个问题中所述: django-create-custom-usercreationform-basic

但是,如果我的数据属于 2 或 3 个不同的模型,包括 User 模型,我该怎么办?然后我会覆盖保存方法还是做其他事情?是否有某种方法可以通过仅在将从 UserCreationForm 继承的 RegistrationForm 中处理它而不进入更底层的方法来处理它?什么是更好的方法?

【问题讨论】:

  • 看看这个link
  • @seb 所以它类似于从 userCreationForm 继承的 2 次或者像编写自己的保存函数
  • 我不明白你的意思,因为你使用的名字好像它们是常用的或常见的。提供一个例子或更好地解释它。
  • @seb 你理解正确并给出了我想做的正确链接,我只是想知道是否有一种高级方法而无需编写backend 或编写自己的@ 987654325@方法

标签: django django-forms django-registration django-users django-profiles


【解决方案1】:

好的,就像您在link 中看到的那样,您可以使用许多方法,但没有一种方法看起来像您想要的那样高级。 我不知道你对 Django 有多熟悉,但链接的方法看起来很有前途。它很新鲜,使用信号框架(灵活)并且非常容易实现 - 高水平足以解决您的问题。请注意UserProfile Examples,因为它们与您的问题非常相似并且更常见。

如果您不想使用信号,最直接的解决方案是覆盖保存方法。

所以您已经想到了解决方案。恕我直言,我想不出更好或更高级的解决方案。

【讨论】:

  • 如果我像stackoverflow.com/questions/5745197/… 一样使用它,那么我会在视图的注册功能中使用RegistrationForm 类还是UserCreationForm 类?
  • 您当然必须使用您的专业课,看看OOP 是如何工作的。这意味着你必须使用RegistrationForm。
  • 好的,谢谢,我了解 OOP,但只是因为新环境而感到困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 1970-01-01
相关资源
最近更新 更多