簡體   English   中英

Django管理列表視圖

[英]Django admin list view

我的模型如下:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM