Как отфильтровать возможные значения полей в админке django или на уровне модели для полей, связанных через вложенный ForeignKey?

У меня есть две следующие модели:

class Question(models.Model):
    question_content = models.TextField(max_length=500)

связан с:

class PossibleAnswer(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    answer = models.CharField(max_length=120)

Я хотел бы иметь древовидную структуру для анкеты, в которой вариант перехода от одного вопроса к другому может зависеть от ответа на предыдущий вопрос. Поэтому я хотел бы создать другую модель следующим образом:

class Relation(models.Model):
    child = models.ForeignKey(Question, on_delete=models.CASCADE, related_name="child")
    parent = models.ForeignKey(Question, on_delete=models.CASCADE, related_name="parent")
    parent_answer = models.ForeignKey(PossibleAnswer, on_delete=models.CASCADE, related_name="parent_answer")

Сейчас у меня проблема в том, что в админке django, при выборе через parent_answer, он дает мне возможность выбрать любой ответ. То есть, не только те, которые связаны с выбранным родительским вопросом (через внешний ключ).

Я верю, что админ не делает динамическую фильтрацию, но я хотел бы, по крайней мере, чтобы возможность выбора на parent_answer была отфильтрована после того, как родительский вопрос был выбран и запись сохранена. Или чтобы это как-то обеспечивалось на уровне модели.

Возможно ли это?

Любая помощь высоко ценится!

Вернуться на верх