#python #flask #sqlalchemy #flask-sqlalchemy #flask-admin
Вопрос:
Я использую Flask-Admin вместе с Flask-Sql-Алхимией.
Моя модель содержит пользователей, у которых может быть много транспортных средств. Проблема в том, что когда я открываю пользователя в Flask-Admin, он показывает правильное количество транспортных средств, но все поля пусты.
Это связано с тем, что я использую collection_class=attribute_mapped_collection («идентификатор») для связи. Когда я удаляю его, отображаются данные.
Мы будем очень признательны за любые советы по загрузке данных без удаления атрибута collection_class.
Пустой список наборов данных:
Модель данных:
class Vehicle(db.Model): __tablename__ = 'vehicle' id = db.Column(db.Integer, primary_key=True, unique=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) license_plate = db.Column(db.String) user = db.relationship("User", back_populates='vehicles') class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, unique=True) vehicles: {Vehicle} = db.relationship('Vehicle', collection_class=attribute_mapped_collection('id'), back_populates="user", cascade='all,delete-orphan')
Flask-Admin:
class UserModelView(ModelView): inline_models = (Vehicle) def create_app(): app = Flask(__name__) env = app.config['ENV'] if env == "production": app.config.from_object('config.Config') app.secret_key = 'super secret key' app.config['SESSION_TYPE'] = 'filesystem' db.init_app(app) app.config['FLASK_ADMIN_SWATCH'] = 'cerulean' admin = Admin(app, name='microblog', template_mode='bootstrap3') admin.add_view(UserModelView(User, db.session)) return app