2016-04-08 20 views
0

Benim models.py bu şekildedir:Django'da ManyToManyField ilişkisini kullanarak nesneler nasıl sayılır?

class Tag(models.Model): 
    name = models.CharField(max_length=255, unique=True) 

class Article(models.Model): 
    title = models.CharField(max_length=255) 
    body = models.TextField() 
    tags = models.ManyToManyField(Tag, related_name='article_tags') 

Sağlar ki, bir etiket espri adı 'Sinema' var, bunu nasıl etiketi ile bir ilişkisi olduğundan makalelerin sayısı alabilirim? Sayımda olduğu gibi.

Teşekkürler.

cevap

2

(aşağıdaki örneklerde your_tag) belirli bir etiket kullanan makaleleri almak için iki yol vardır: Article.objects.filter(tags=your_tag)

  • Veya ilgili kullanarak: Bir filtreleme kullanarak

    • Ya Article üzerinde İlişkilendirme: your_tag.article_tags.all()

    Bunu yaptıktan sonra, .count()'u yalnızca t döndürülen satır sayısı.

  • 1

    kullanın bu sorgu ..

    Article.objects.filter(tags__name='Movie Review') 
    

    Sen Django en .count() kullanabilirsiniz sayımı

    Article.objects.filter(tags__name='Movie Review').count() 
    
    1

    olsun.

    tag = Tag.objects.get(name='Movie Review') 
    article_count = tag.article_tags.all().count() 
    
    İlgili konular