Я хотел бы создать две модели: 1) Разговор, в котором хранится ссылка на корневое сообщение с заголовком, и 2) Сообщение, в котором хранится содержимое/текст сообщения и ссылка на кампанию. План состоит в том, чтобы связать сообщения и в конечном итоге создать дерево диалогов. Корневое сообщение в беседе будет действовать как головной (входной) узел связанной сети сообщений.
Ниже то, что я определил в файлах модели (conversations/models.py
и messages/models.py
соответственно):
from messages.models import Message
class Conversation(models.Model):
title = models.CharField('Conversation Title', max_length=500)
created_at = models.DateTimeField(auto_now_add=True)
composer = models.ForeignKey(User)
root_message = models.ForeignKey(Message, null=True, blank=True)
from conversations.models import Conversation
class Message(models.Model):
(foreignkey very likely)
conversation = models.ForeignKey(Conversation, null=True, blank=True)
content = models.TextField(db_index=True, max_length=500)
created_at = models.DateTimeField(auto_now_add=True)
Проблема в том, что когда я запускаю schemamigration messages --auto
или schemamigration conversations --auto
юга, я сталкиваюсь с такой ошибкой:
class Campaign(models.Model):
File "C:\Users\Documents\GitHub\t4s\conversations\models.py", line 11, in Conversation
from messages.models import Message
ImportError: cannot import name Message
Я полагаю, это потому, что Message
и Conversation
импортируют друг друга. Но я бы хотел, чтобы каждый экземпляр Message
имел связь с Conversation
, чтобы я мог ссылаться на заголовок беседы. Есть ли что-то, что я могу сделать, чтобы успешно создать поле Foreignkey
в Message
и Conversation
без изменения структуры моделей? Заранее спасибо за ваши ответы!