У меня есть приложение с флягой, которое оно разделяет друг с другом с помощью Blueprints. У меня есть 3 пакета, которые имеют много к одному.
Первый пакет (план) - это аутентификация (Containts User_Model):
from Billboard.Apps.models import Android_Model
from Billboard.Survey.models import Survey_Model
class User_Model (db.Model, UserMixin):
__tablename__ = user_model
...
advertised_apps = db.relationship ('Android_Model' , backref = 'user_model' , lazy = True)
advertised_surveys = db.relationship ('Survey_Model' , backref = 'user_model' , lazy = True)
второй пакет имеет внешний ключ для моего User_Model:
from Billboard.Authentication.models import User_Model
class Survey_Model (db.Model):
__tablename__ = 'survey_model'
...
advertiser_id = db.Column(db.Integer, db.ForeignKey('user_model.id'), nullable=False)
И третья модель пакета такая же, как и вторая.
Когда я запускаю приложение для флеш, я получил некоторую ошибку импорта, которую я знаю, что они предназначены для циклического импорта между этими моделями.
ПРИМЕЧАНИЕ. Когда я удаляю эту связь между этими моделями, у меня нет ошибок, и проект работает правильно.
Любая идея решить?
Фактически вам не нужно импортировать модель для объявления отношений с ней. Обратите внимание: db.relationship
принимает строку как первый аргумент, а не класс.