我有以下3个型号:
class ModelA(models.Model):
one = models.Charfield()
two = models.Charfield()
#etc
class ModelB(models.Model):
modela = models.ForeignKey(ModelA)
modelc = models.ForeignKey(ModelC)
#etc
class ModelC(models.Model):
five = models.Charfield()
six = models.Charfield()
#etc
我有ModelA的管理员:
class ModelAAdmin(admin.ModelAdmin):
list_display = ('one', 'two')
我想要实现的是在ModelA的管理列表视图中显示ModelC的属性“五”:
list_display = ('one', 'two', 'five')
我收到此错误:
ModelAAdmin.list_display[2], 'five' is not a callable or an attribute of 'ModelAAdmin' or found in the model 'ModelA'.
正确......我理解......因为ForeignKey不在ModelA上,而在ModelB上。
但是如何在管理列表视图中显示该属性?
答案 0 :(得分:0)
您可以将list_display元素设为一个函数,该对象将对象作为参数。
def get_five(obj):
return ("%s") % obj.modelc.five
get_five.short_description = 'five'
class ModelAAdmin(admin.ModelAdmin):
list_display = ('one', 'two', get_five)
不确定您是否能够像这样访问modelc,但如果没有,您可以创建查询。