gpt4 book ai didi

django显示多方字段的内容

转载 作者:行者123 更新时间:2023-12-04 04:48:33 25 4
gpt4 key购买 nike

我几天前才开始使用django框架,我非常需要我的应用程序的帮助。

它由客户,项目,管理员和管理员付款类别组成,其中admin_payment包含管理员和项目的ID。

我的问题是我如何在项目管理列表中显示每个“项目”的“管理员姓名”?项目类本身不包含管理员ID(Admin_Payment包含)

目前,我有以下结构:(分解)

models.py

class Admin(models.Model):
admin_name = models.CharField(unique = True, blank = False, null = False, max_length = 128, verbose_name = u'admin full name')

def __unicode__(self):
return self.admin_name
class Meta:
ordering = ('id',)
verbose_name = u'Admin Info'

class Project(models.Model):
client = models.ForeignKey(Client, verbose_name = u'Client')
description = models.ForeignKey(Description, verbose_name = u'project description')
admins = models.ManyToManyField(Admin, verbose_name = u'Administrators', through = 'Admin_Payment')

class Admin_Payment(models.Model):
admin = models.ForeignKey(Admin, verbose_name = u'Administrator')
project = models.ForeignKey(Project, verbose_name = u'project')

admin.py(精简)
class AdminInline(admin.TabularInline):
model = Admin

class ProjectAdmin(admin.ModelAdmin):
radio_fields = {'position': admin.HORIZONTAL, 'solution': admin.HORIZONTAL}
inlines = [AdminInline, ]
list_display = ['client','description','admin_name']

客户端和说明正确显示在项目列表中,但管理员名称不是

任何帮助表示赞赏
(对不起,如果我发布了没有任何意义的内容,我是python和django的新手)

最佳答案

django默认不支持显示ManyToMany字段的内容,因为将针对结果的每一行查询数据库。您可以通过adding a method to your Project -model自己显示它:

class Project(models.Model):
....
def admin_names(self):
return ', '.join([a.admin_name for a in self.admins.all()])
admin_names.short_description = "Admin Names"

并将 admin_names放入您的 list_display字段中!

关于django显示多方字段的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4564086/

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