Ich versuche, ein Slug-Feld in einem meiner DB-Modelle zu erstellen. Ich benutze Flask-SQLAlchemy und Flask-Admin. Meine Klasse ist wie folgt definiert:Slug-Feld in SQL Alchemy/FlaskAdmin
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)
habe ich versucht, so etwas wie dies aus dieser question umzusetzen:
def __init__(self, *args, **kwargs):
if not 'slug' in kwargs:
kwargs['slug'] = slugify(kwargs.get('name', ''))
super().__init__(*args, **kwargs)
aber es nicht funktioniert, wenn ich die neue Händler erschaffe mit Flask-Admin.
Bei dem Versuch, festzustellen, warum, ändere ich die Init-Funktion einfach print kwargs
. Wenn ich einen neuen Merchant in Flask-Admin erstelle, druckt es {}
, aber wenn ich es in der Python-Shell mache, wie Merchant(name ='test')
, druckt es .
Weiß jemand, wie ich auf die Argumente zugreifen kann, die an meine Klasse bei init von Flask-Admin übergeben werden?
Ehrfürchtig. Vielen Dank. – GMarsh
@GMarsh Danke für die Bearbeitung, ich habe das vergessen :) –