gpt4 book ai didi

django admin list_display 没有加入的外键 id

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

class CDR(models.Model):
order = models.ForeignKey(Order)
call = models.ForeignKey(Call)
start_date = models.DateTimeField(auto_now_add=True)
end_date = models.DateTimeField(null=True)
remark = models.CharField(max_length=200, null=True)

class CDRAdmin(admin.ModelAdmin):
search_fields = ('order__id',)
raw_id_fields = ('call', 'order')
list_display = ('call', 'order', 'start_date', 'remark')

models = CDR

由于 CDR 表 Call 和 Order 中有 2 个外键,但要在 list_display 中显示这些 id,它会与 Call 和 Order 表进行联接,并且由于所有这 3 个表都有大量数据行,因此会导致查询速度变慢。

有没有不用join的方法解决?

当我在 list_display 中使用 call__id 和 order__id 时,它会引发 ImproperlyConfigured 而没有 __id 它会在连接结果中显示 __repr__ 对象。

最佳答案

外键 ID 为 <name>_id属性,以便您可以通过自定义方法显示 id:

class CDRAdmin(admin.ModelAdmin):

list_display = ('call_id_display', 'order_id_display', 'start_date', 'remark')

def call_id_display(self, obj):
return obj.call_id
call_id_display.short_description = 'Call ID'

def order_id_display(self, obj):
return obj.order_id
order_id_display.short_description = 'Order ID'

关于django admin list_display 没有加入的外键 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27542983/

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