FlaskAdmin:切换到Bootstrap 4会中断许多表单显示

2024-05-23 14:18:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Flask管理应用程序,其模型结构如下(大大简化):

class Book(db.Model):
  id = db.Column(db.Integer, primary_key=True)
  title = db.Column(db.String(255))
  subject = db.relationship('Subject', secondary='book_subject', backref=db.backref('book', lazy='dynamic'))

class Subject(db.Model):
  id = db.Column(db.Integer, primary_key=True)
  name = db.Column(db.String(50))
  def __str__(self):
    return self.name

class BookSubject(db.Model):    
  book_id = db.Column(db.Integer, db.ForeignKey('book.id'), default=0, nullable=False)
  subject_id = db.Column(db.Integer, db.ForeignKey('subject.id'), default=0, nullable=False)

在我的admin.py文件中,我有

class BookModelView(ModelView):
  form_columns = ('title', 'subject')
  form_args = {
        'title': {'validators': [Required()]},
        'subject': {'validators': [Required()]}
  }

这就是(我认为)相关的一切。我没有任何自定义模板可以接近这一点

在我当前的应用程序中,我使用admin = Admin(app, name='Books', template_mode='bootstrap3')。我最近升级到Flask Admin 1.5.7,以利用Bookstrap 4集成

当我将这个配置行切换到template_mode='bootstrap4'时,我丢失了主题。也就是说,如果我看一本有“小说”、“科幻小说”和“战争”主题的书,我会用bootstrap3列出这些主题,用逗号分隔;当我切换到boostrap4时,我在主题列中得到“Empty”。这是完全一致的;在没有其他更改的情况下,从bootstrap3来回切换到bootstrap4显示了这种行为。更改引导样例主题无效

你知道这是什么原因吗


Tags: keynameidflask主题dbmodeltitle