2015-09-07 172 views
8

我想显示django的list_display属性中相关对象的计数。 例如我们有一个类别字段,我们要显示出许多博客文章如何发布这一类Django:显示管理中相关对象的计数list_display

到目前为止,我已经试过这一点:

admin.py:

from .models import Category 

class CategoryAdmin(admin.ModelAdmin): 
    def category_post_count(self, obj): 
     return obj.post_set.count 
category_post_count.short_description = "Posts Count" 

list_display = ['category', 'category_post_count'] 

模型。潘岳:

class Category(models.Model): 
    category = models.CharField(max_length=25) 

class Post(models.Model): 
    category = models.ForeignKey(Category, null=True, blank=False) 

回答

7

.count是一个功能,所以你必须在最后附加括号()叫它:

def category_post_count(self, obj): 
    return obj.post_set.count() 
+0

完美谢谢 – samix73

+1

嘿,我有一个单独的问题。我正在学习Django。你能指出我的正确文件,解释为什么这个工程。 (即这种显示admin中的ForeignKey对象记录总数的方法,我对函数category_post_count的解释/文档感兴趣)。谢谢 – Deep

+0

@Deep你可以看看这个:https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display – ozgur