DB 모델 중 하나에서 슬러그 필드를 만들려고합니다. 나는 Flask-SQLAlchemy와 Flask-Admin을 사용하고있다. 나는이 question에서이 같은 것을 구현하려고했습니다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)
:로 내 클래스가 정의됩니다
def __init__(self, *args, **kwargs):
if not 'slug' in kwargs:
kwargs['slug'] = slugify(kwargs.get('name', ''))
super().__init__(*args, **kwargs)
그것이 내가 플라스크-관리자를 사용하여 새 상인을 만드는 오전 때 작동하지 않습니다하지만.
이유를 알아 내려고 시도하면서 init 함수를 간단히 print kwargs
으로 변경합니다. Flask-Admin에서 새로운 판매자를 만들면 {}
을 인쇄하지만, Merchant(name ='test')
과 같이 파이썬 셸에서 수행하면 {'name' : 'test'}
이 인쇄됩니다.
Flask-Admin에서 초기화 할 때 클래스에 전달되는 인수에 액세스하는 방법을 아는 사람이 있습니까?
굉장합니다. 감사. – GMarsh
@GMarsh 편집 해 주셔서 감사합니다. 나는 그것에 대해 잊어 버렸습니다. :) –