【发布时间】:2022-01-08 09:05:59
【问题描述】:
我在使用 flask-admin 添加新实例时遇到了一点问题。 我的模型是:
class MenuCategory(db.Model):
id = db.Column(db.Integer, primary_key=True)
name_category = db.Column(db.String(20), unique=True)
slug = db.Column(db.String(255))
order = db.Column(db.Integer)
path = db.Column(db.Unicode(128))
def __init__(self, **kwargs):
if not 'slug' in kwargs:
kwargs['slug'] = slugify(kwargs.get('name_category', ''))
super().__init__(**kwargs)
def __repr__(self):
return f'<Category {self.name_category}>'
ModelView 也是:
class MenuCategoryView(ModelView):
column_labels = dict(name_category='Наименование категории', order='Приоритет', path='Изображение')
column_editable_list = ('name_category', 'order')
column_default_sort = 'order'
form_excluded_columns = ('slug')
当我在其中创建新实例时也应该添加“slug”值。它在带有烧瓶壳的终端中运行良好:
>>> m = MenuCategory(name_category='Something here')
{'name_category': 'Something here', 'slug': 'something-here'}
>>> db.session.add(m)
>>> db.session.commit()
但是当我使用 flask-admin 创建新实例时,它只是添加一个没有“slug”和 NULL 值的新实例。谁能告诉我我做错了什么?
【问题讨论】:
-
我采用 Liran BG 解决方案从stackoverflow.com/questions/23657483/slug-field-on-flask 制作 slug,现在它可以工作了 有人可以解释一下区别吗?
-
一个建议,当您编辑您的问题时,它会再次出现在顶部,因此得到回答的机会要大得多
标签: python flask flask-sqlalchemy flask-admin