gpt4 book ai didi

django - 在子管理中显示父字段(list_display)

转载 作者:行者123 更新时间:2023-12-01 22:13:55 26 4
gpt4 key购买 nike

这是 models.py 的片段

class Applicant(models.Model):
name = models.CharField(...)
email = models.CharField(...)

class Application(models.Model):
applicant = models.ForeignKey(Applicant)
text = models.TextField(...)

这是我的 admin.py:

class ApplicationAdmin(model.ModelAdmin):
list_display = ['text', *******]

admin.site.register(Application, ApplicationAdmin)

在申请管理中我想显示申请人的姓名和电子邮件。

在问这个问题之前你尝试过什么?
我查看了以下代码,它不起作用:

list_display = ['text', 'applicant__name','applicant__email']

我看过ModelAdmin.inlines但正如我们所看到的,父子关系必须颠倒过来。

有什么建议吗?如何在应用程序管理中显示申请人姓名/电子邮件。最好不要使用新字段等迁移数据库。

最佳答案

你可以像 list_display docs 中的第四种可能性那样做。只需向您的应用程序模型添加一个方法,如下所示:

class Application(models.Model):
applicant = models.ForeignKey(Applicant)
text = models.TextField(...)

def applicant_name(self):
return self.applicant.name
applicant_name.short_description = 'Applicant Name'

def applicant_email(self):
return self.applicant.email
applicant_email.short_description = 'Applicant Email'

然后您可以像这样设置 ModelAdmin:

class ApplicationAdmin(model.ModelAdmin):
list_display = ['text', 'applicant_name', 'applicant_email']

关于django - 在子管理中显示父字段(list_display),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4868063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com