2016-11-22 24 views
5

ile Sorgu kendini başvuran nesneleri aşağıdaki Django modeli vardır: alan parent bir ebeveyne sahip olabilir yani bir kategori başvuran öz olduğunuDjango: hayır çocuk elemanları

class Category(models.Model): 
    name = models.CharField(maxlength=20) 
    parent = models.ForeignKey('self', null=True) 

Not.

Çocuk kategorilerine sahip olmayan tüm Category nesnelerini nasıl bulabilirim?

cevap

6

Sen related_query_name ile isnull kullanabilirsiniz:

İşte
class Category(models.Model): 
    # ... 
    parent = models.ForeignKey('self', null=True, related_name='children', related_query_name='child') 

Category.objects.filter(child__isnull=True) 

, en azından anlamlı bir related_name belirtmek öneriyoruz! Yalnızca bir related_name belirtirseniz, related_query_name varsayılan olarak bu ada sahip olur (burada: children). Eğer iki model ismine RQN varsayılan hiçbiri belirtirseniz: category, değilcategory_set

Category.objects.filter(category__isnull=True) # not so informative 
+0

kullandığım 'Category.objects.filter (children__isnull = True)' ve güzel çalışıyor. Teşekkürler. – Frankline