Python Django管理员列表视图

Python Django管理员列表视图,python,django,django-admin,Python,Django,Django Admin,我有这样的模型: 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 | field

我有这样的模型:

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(),但如何为每个用户只保留一行?

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

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)
请注意,这将在更改列表页面中的每行至少进行两次查询,这在您的情况下可能是问题,也可能不是问题


或者,您可以尝试覆盖或。

以获得建议,但这不是我想要的。我实现了非常类似的解决方案,但它不是跨行的。