【发布时间】:2023-11-22 06:43:01
【问题描述】:
在我的项目中,我有一个表,其中包含另一个表的外键。 在 django admin 中,我会显示两个表中的字段。 这是我的原始模型:
class t_time(models.Model):
history_main = models.IntegerField(default=0)
elapsed_t = models.DecimalField(max_digits=20, decimal_places=6, default=Decimal('0.0000'))
在 admin.py 中,我尝试对提取进行查询并将表中的额外字段添加到我的视图中,但可能在某些方面我错了。我尝试像这样覆盖 get_queryset:
class t_timeAdmin(admin.ModelAdmin):
list_display = ('id','hist_data','elapsed_t')
def get_queryset(self, request):
queryset = super().get_queryset(request)
myqs = t_history.objects.get(id=t_time.history_main)
queryset = queryset.annotate(
_hist_data=myqs.test_type,
#_villain_count=Count("villain", distinct=True),
)
return queryset
def hist_data(self, obj):
return obj._hist_data
但我收到一个关于返回类型 (int) 的错误,该类型可能与 annotate() 指令有关。 如何将查询中的额外字段添加到我的 django 管理视图?
提前非常感谢
【问题讨论】:
-
我怀疑问题出在
t_history.objects.get(id=t_time.history_main)。 Django 期望 id 为int,但t_time.history_main是一个字段。
标签: django django-admin django-queryset