【问题标题】:How to overriding model in django third party app?如何在 django 第三方应用程序中覆盖模型?
【发布时间】:2019-04-11 05:36:03
【问题描述】:

我想修改 django 第三方模型。这里是原始代码。

default_price = models.DecimalField(
        decimal_places=2, max_digits=7,
        null=True, blank=True,
        verbose_name=_("Default price"),
    )

我想把max_digits=7改成max_digits=9,所以变成:

default_price = models.DecimalField(
        decimal_places=2, max_digits=9,
        null=True, blank=True,
        verbose_name=_("Default price"),
    )

是否可以在不直接接触原始第三方代码或分叉的情况下修改 django 第三方模型?

谢谢

【问题讨论】:

标签: django


【解决方案1】:

我在我的模型中用这两行代码解决了这个问题:

from thirdparty.models import ParentModelClass
ParentModelClass._meta.get_field('default_price').max_digits = 9

然后进行迁移 && 迁移

瞧,它可以工作,但我不知道使用这个技巧有什么缺点。

感谢 Peterino cmets 对此https://stackoverflow.com/a/2357942/2579404

希望它也能帮助其他有类似情况的人。

【讨论】:

    猜你喜欢
    • 2020-05-29
    • 2018-05-22
    • 2014-03-07
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 2017-01-24
    相关资源
    最近更新 更多