Есть модели:
class A(models.Model):
title = models.CharField()
class B(models.Model):
category = models.ForeignKey(A)
title = models.CharField()
class C(models.Model):
category = models.ForeignKey(A)
products = models.ManyToManyField(B)
В админке изменяю модель C.
Каким образом для выбора M2M связей к модели B вывести только те экземпляры B, которые завязаны на уже выбранной модели A?
В идеале хочу понять, как сделать выбор A просто формальностью, без создания реальной завязки на нем.
Того, что сумел найти, мне явно не хватает. Пробовал создавать форму, в admin.py ее привязывать.
class MyForm(forms.ModelForm):
class Meta:
model = C
fields = ('category', 'products')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
category = ???
self.fields['products'].queryset = category.products.all()
Каким образом тут получить выбранную мной category(модель A)?
По ощущениям я где-то очень близко к решению, но ничего не могу придумать.