Как отфильтровать возможные значения полей в админке 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
была отфильтрована после того, как родительский вопрос был выбран и запись сохранена. Или чтобы это как-то обеспечивалось на уровне модели.
Возможно ли это?
Любая помощь высоко ценится!