您可以通过继承添加字段
如果仍然需要保留对原始Site对象/行的引用,则可以使用多表继承
from django.contrib.sites.models import Siteclass 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)



