Круговой импорт Flask Sqlalchemy при использовании чертежей

1

У меня есть приложение с флягой, которое оно разделяет друг с другом с помощью 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)

И третья модель пакета такая же, как и вторая.

Когда я запускаю приложение для флеш, я получил некоторую ошибку импорта, которую я знаю, что они предназначены для циклического импорта между этими моделями.

ПРИМЕЧАНИЕ. Когда я удаляю эту связь между этими моделями, у меня нет ошибок, и проект работает правильно.

Любая идея решить?

Теги:
flask
sqlalchemy
flask-sqlalchemy
blueprint

1 ответ

0

Фактически вам не нужно импортировать модель для объявления отношений с ней. Обратите внимание: db.relationship принимает строку как первый аргумент, а не класс.

  • 0
    так что я должен написать в db.relationship в этом примере?
  • 0
    Вам просто нужно удалить импорт, они не нужны.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню