gpt4 book ai didi

python - 在 Django 中扩展模型的正确方法

转载 作者:行者123 更新时间:2023-11-30 23:23:34 26 4
gpt4 key购买 nike

在 django 1.5 中扩展第三方模型的最佳方式是什么?
假设我有名为“反馈”的第三方模型:

class Feedback(models.Model):
user = models.ForeignKey(
'auth.User',
verbose_name=_('User'),
related_name='feedback_form_submissions',
blank=True, null=True,
)

email = models.EmailField(
verbose_name=_('Email'),
blank=True,
)
...

我有自己的用户类别。我需要覆盖用户字段。电子邮件 我需要设置空白=False,并且可能想向模型添加另一个字段。最好的方法是什么?

最佳答案

根据具体情况,即您使用的第 3 方应用程序,您可以通过多种方式解决此问题:

  1. 从模型显式继承:

    类自定义反馈(反馈): #等等

  2. 创建自定义应用程序:通过执行 django-admin.py startapp AppName_custom 来扩展应用程序,这是我在某些应用程序中使用的一种技术。在这种情况下,您将希望从上面的类继承,但拦截诸如 saveclean 之类的数据库方法。

  3. fork 该应用程序。如果您对 Django 没有经验,这无疑是最困难的方法。只需通过 gitmercurial 克隆或 fork ,然后添加修改应用程序行为所需的任何代码。

根据经验(请原谅这个表达),您不应该修改 User 模型,因为 Auth 模块已经很好地进行了划分。相反,您应该使用像 django-profiles 这样的应用程序将数据添加到模型或扩展表单。

关于python - 在 Django 中扩展模型的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23898213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com