1
class Dad(models.Model): 
    name = models.CharField() 

    def __str__(self): 
     return self.name 

class Son(Dad): 
    dad = models.ForeignKey(Dad, related_name='sons') 



>>> dad = Dad(name="Leonid") 
>>> dad.save() 
>>> Dad.objects.all() 
[<Dad: Leonid>] 
>>> son = Son(name='Jason') 
>>> dad.sons.add(son) 
>>> Dad.objects.all() 
[<Dad: Leonid>, <Dad: Jason>] 
>>> Son.objects.all() 
[<Son: Jason>] 

Jason'ın yöneticisinden Jason nesnesine sahip olmak istemiyorum. Sadece babaları filtrelemek için özel yöneticiler kullanmak istemiyorum. Bir çocuk sınıfının nesnelerini içermemenin zarif bir yolu var mı?Django süper sınıfı yöneticisi, ForeignKey aracılığıyla çocuk sınıfının istenmeyen nesnelerine sahiptir.

cevap

0

Sizin durumunuzda yanlış olan Son modelinizi oluşturmak için Dad genişliyorsunuz. Şu anda kodunuz her Son'un da bir Dad olduğu anlamına gelir. Sen model inheritance ve kafa karıştırıcı gibi görünüyor farklı kavramları vardır foreign key relations hakkında daha fazla bilgi bulabilirsiniz

class Son(models.Model): 

: için sınıf tanımını değiştirin.