您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何修改Django模型?

如何修改Django模型?

如果仍然需要保留对原始Site对象/行的引用,则可以使用多表继承

from django.contrib.sites.models import Site

class MySite(Site):
    new_field = models.CharField(...)

    def new_method(self):
        # do something new

这可以让你有定期Site的对象,可以由您的扩展MySite模型,在这种情况下,你可以访问,例如通过额外的属性方法site.mysite,如site.mysite.new_field

通过继承,您无法隐藏祖先字段,因为如果您覆盖任何祖先模型中的任何模型字段,Django都会引发FieldError

而且我不会冒险为此编写自定义数据库迁移,因为如果更新Django,则可能会与Site模型发生架构冲突。

因此,如果我想存储祖先模型允许的更多信息,这就是我会做的事情:

class SiteLongName(Site):
    long_name = models.CharField(max_length=60)
Go 2022/1/1 18:50:43 有301人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶