2015-09-07 13 views
8

Django'nun list_display özelliğinde ilgili nesnelerin sayısını göstermek istiyorum. örneğin bir kategori alanı var ve pek çok blog yayınları Ben şimdiye kadar bu denedi Bu kategorideDjango: admin list_display içindeki ilgili nesnelerin sayısını göster

gönderilmiş nasıl göstermek istiyorum:

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'] 

modelleri. py: sonunda parantez () ekleyerek diyoruz zorunda

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

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

cevap

7

.count bir işlevdir:

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

kusursuz çalışıyor – samix73

+1

Hey, bununla ilgili ayrı bir sorum var. Django'yu öğrenmeye çalışıyorum. Bunun neden işe yaradığını açıklayan doğru belgelere işaret edebilir misiniz? (yani, ForeignKey nesne kayıtlarının toplam sayısının admin olarak gösterilmesine ilişkin bu yöntem. category_post_count işlevine ilişkin açıklama/belgelere ilgi duyuyorum). Teşekkürler – Deep

+0

@Bunu kontrol edebilirsiniz: https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display – ozgur