【发布时间】:2026-01-14 11:15:02
【问题描述】:
我正在尝试在我的一个数据库模型中创建一个 slug 字段。我正在使用 Flask-SQLAlchemy 和 Flask-Admin。我的班级定义为:
class Merchant(db.Model):
__tablename__ = 'merchants'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String())
...
slug = db.Column(db.String())
def __repr__(self):
return 'Merchant: {}'.format(self.name)
我试图从这个question 实现类似的东西:
def __init__(self, *args, **kwargs):
if not 'slug' in kwargs:
kwargs['slug'] = slugify(kwargs.get('name', ''))
super().__init__(*args, **kwargs)
但是,当我使用 Flask-Admin 创建新商家时,它不起作用。
在尝试确定原因时,我将 init 函数更改为简单的 print kwargs。当我在 Flask-Admin 中创建新商家时,它会打印 {},但是当我在 python shell 中执行此操作时,例如Merchant(name ='test'),它会打印{'name' : 'test'}。
有谁知道我如何访问从 Flask-Admin 初始化时传递给我的类的参数?
【问题讨论】:
标签: python flask flask-sqlalchemy flask-admin