Мне нужно создать сколь угодно глубокую модульную структуру, используя администратор Django. Пакет nested_admin помог мне справиться с этой задачей, но есть еще одна ключевая функциональность, которая все еще ускользает от меня - возможность создать объект B, встроенный в объект A, а затем создать еще один объект A из этого экземпляра. объекта B. Вот внимательный взгляд на мои модели (упрощенно):
class ChatConditional(models.Model):
triggering_question = models.ForeignKey(
'texts.MessageChain',
on_delete=models.CASCADE,
)
keyword = models.CharField(max_length=50, blank=False, null=False)
keyword_response = models.ForeignKey(
'texts.MessageChain',
related_name='keyword_answer',
on_delete=models.CASCADE,
)
class MessageChain(models.Model):
conditional_trigger = models.ForeignKey(
'texts.ChatConditional',
blank=True, null=True,
)
message = models.TextField(max_length=160, blank=True, null=True)
Итак, в админе я хочу иметь возможность создать ChatConditional, который будет служить ответом на определенную MessageChain. Затем, как только я создаю это Условие, создайте еще одну MessageChain для отправки, которая потенциально будет ссылаться на другое Условие. Вот как выглядят мои модели администратора:
class SMSConditionalAdmin(nested_admin.NestedStackedInline):
model = ChatConditional
extra = 0
fk_name = "triggering_question"
inlines = [SMSChainAdmin]
class SMSChainAdmin(nested_admin.NestedStackedInline):
model = MessageChain
extra = 0
inlines = [SMSConditionalAdmin]
И теперь вы, вероятно, можете увидеть проблему: чтобы полностью определить SMSConditionalAdmin, мне нужно установить встроенное отношение к SMSChainAdmin и наоборот. Возможно, я упускаю что-то очевидное, но как я могу обойти эту потребность, чтобы два встроенных админа рекурсивно ссылались друг на друга?