Django管理面板。在子对象中显示和编辑父字段(ModelAdmin.inlines reverse)

时间:2013-11-25 11:12:59

标签: python django django-models django-admin

我正在尝试创建管理面板。我的模型中有三个班级。

1) Company
2) Executive
3) CompanyExecutive (Which have one to Many relation between Company and Executive)

我只需要在管理面板上显示“CompanyExecutive”。 但是现在当我点击“CompanyExecutive”对象时,我被重定向到保存了公司执行关系的对象。 我需要做的是当我点击“CompanyExecutive”时,我必须打开“执行”实例。我有点陷入这个问题。任何人都可以帮我弄清楚如何完成这项任务。我看过ModelAdmin.inlines但是可以看出,父/子关系必须颠倒过来。

提前致谢

编辑1: 我有一种方法,即在单击CompanyExecutive实例时将用户重定向到另一个页面i-e Executive页面。现在问题是我需要在admin类中覆盖哪个函数来实现这个任务..

1 个答案:

答案 0 :(得分:0)

我采取了不同的方法。 在CompanyExecutive的主页面上,我添加了一个自定义字段,该字段链接到Executive对象。这样,如果用户想要更改CompanyExecutive的关系,他可以像往常一样点击对象,如果他/她想要更改执行细节,他可以点击链接。 在模型中,我添加了一个自定义字段

def Person_Link(self):
    return "<a href='/admin/sweetspotModel/persons/%s/' target='_blank'>Person Details<a/>" % self.contactid.contactid
Person_Link.allow_tags = True  

在管理员面板中,我在主页面上显示了此字段。

class ExecutiveAdmin(admin.ModelAdmin):
    list_display = ('Person_Name', 'Person_Link')

我希望这种方法可以帮助任何人。