Django M2M ilişki için ters sorgu yapma

Herkese Merhaba,
Aşağıdaki gibi 2 modelim var. Bunlar arasında geriye dönük bir sorgu yapmak istiyorum ancak denemelerim pek başarılı olmadı.

class A(models.Model):
    ...
    slug = models.CharField(
        max_length=20
    )
    parent = models.ForeignKey(
        'self',
        verbose_name=_('Parent'),
        null=True,
        blank=True,
        on_delete=models.CASCADE
    )

class B(models.Model):
    ...
    application = models.ForeignKey(
        oauth2_settings.APPLICATION_MODEL,
        verbose_name=_('Application'),
        on_delete=models.CASCADE
    )

    module = models.ManyToManyField( A)

def foo(request, slug, *args, **kwargs):

    app = app_id'yi istekten otomatik bulan bir kod var

    module_perms = B.objects.filter(
         application__id=app,
         module__slug=slug,
         **kwargs)

     b_serializer = BSerializers(module_perms, many=True)

     if b_serializer.data:
         return "success"

aşağı yukarı buna benzer bir kodum var ve burada kullanıcının foo methoduna ilettiği slug değeri için A sınıfına sorgu yaptığımda sonuç dönmeyebilir. Ancak A sınıfında parent ilişkilerde ilgili uygulama için bir tanım yapılmış ise yine de kodun çalışmasını istiyorum. Yani çok özetle hiyerarşik olarak eğer en alt öğe için bir tanım yok ise sırası ile tüm üst öğeleri sorgulamak ve istekte bulunan uygulama için herhangi bir üst öğede tanımlama var ise kodu çalıştırmak istiyorum. Bunun için en basit hali ile nasıl bir yol izleyebilirim?