一个人如何扩展django.contrib.sites.admin,以便包含一个外键指向站点的模型字段?

一个人如何扩展django.contrib.sites.admin,以便包含一个外键指向站点的模型字段?,django,django-admin,django-contrib,django-sites,Django,Django Admin,Django Contrib,Django Sites,我正在努力扩展django.contrib.sites.admin。由于django.contrib.sites对我的外国模型一无所知,我很难找到如何向站点管理页面添加字段的方法。有没有一种我忽略的简单方法,可以让我将下面示例中的字段“derp”添加到站点管理员?我是否必须扩展django.contrib.sites.models-safe/etc功能才能实现这一点?多谢 class Herp(models.Model): site = models.ForeignKey(Site)

我正在努力扩展django.contrib.sites.admin。由于django.contrib.sites对我的外国模型一无所知,我很难找到如何向站点管理页面添加字段的方法。有没有一种我忽略的简单方法,可以让我将下面示例中的字段“derp”添加到站点管理员?我是否必须扩展django.contrib.sites.models-safe/etc功能才能实现这一点?多谢

class Herp(models.Model):
    site = models.ForeignKey(Site)
    derp = models.CharField(blank=True, max_length=15)
编辑:我应该提到我有一个admin.py文件,其中有一个类扩展了SiteAdmin。我了解admin.site.unregister和admin.site.register。我只是不知道如何将具有外键关系的字段包含回django.contrib.sites。

可以这样做。您可以定义
HerpInlineAdmin
,将其添加到
SiteAdmin
上的
inlines
属性中,然后注销
站点
,然后使用新的
SiteAdmin
再次注册


虽然这实际上不会向
站点的管理表单添加任何内容,但是
derp
字段将作为内联出现在站点的管理页面上。

您想过内联吗?您可以定义
HerpInlineAdmin
,将其添加到
SiteAdmin
上的
inlines
属性中,然后注销
站点
,然后使用新的
SiteAdmin
再次注册。您的字段将出现在站点管理页面上。@Anton:是的,这就是我想要的。我想我太专注于我想要添加到一个我无法控制的现有管理页面上的事实了。再加上我没有像我应该的那样设置模型pk,这也很有帮助。如果你想把你的答案贴出来,我会给你一张支票。谢谢