gpt4 book ai didi

python - Django 管理 ListView

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:51 26 4
gpt4 key购买 nike

我有这样的模型:

class MyModel(models.Model):
user = models.ForeignKey(User)
field1 = models.CharField(max_length=100, db_index=True, null=False, blank=False)
field2 = models.CharField(max_length=100)

当然它显示为如下列表:

user1 | field1 | field2
user1 | field1 | field2
user2 | field1 | field2
user2 | field1 | field2

我想这样展示它:

user1 | field1_count() | field2_count()
user2 | field1_count() | field2_count()

我知道如何为用户计算 field1_count() 和 field2_count(),但如何只为每个用户保留一行?

最佳答案

您可以使用 list_display属性来定义在管理员的更改列表页面中显示哪些字段。

class MyAdmin(admin.ModelAdmin):
list_display = ('username', 'field1_count', 'field2_count')

def field1_count(self, obj):
# count field1
return c

def field2_count(self, obj):
# count field2
return c

admin.site.register(User, MyAdmin)

请注意,这将在您的更改列表页面中每行至少进行两次查询,这在您的情况下可能会或可能不会成为问题。

或者,您可以尝试覆盖 ModelAdmin.querysetModelAdmin.changelist_view .

关于python - Django 管理 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11561411/

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