Flask管理员一对一关系并编辑表单

时间:2019-10-15 22:26:43

标签: flask sqlalchemy flask-admin

我正在使用Flask-Admin为我的Web应用构建管理仪表板。对于用户/地址关系,我使用的是一对一关系。在用户编辑表单上,我希望能够编辑地址的各个部分(即街道地址,城市或邮政编码),类似于inline_models提供的内容。相反,flask-admin会生成一个选择字段,并且只允许我选择其他地址。

我尝试在UserModelView定义中使用inline_models = ['address']。但是,由于将用户/地址关系配置为uselist = False,我得到了地址对象不可迭代的错误。将uselist切换为True会影响代码的其他部分,因此我宁愿将其保留为False。

通过在功能get_forms中查看flask-admin / contrib / sqla / forms,它被分配了一个一对多的标记,这是驱动选择字段使用的原因。

在进一步研究之前,我想出了最好的办法,看看是否有其他人遇到过这种情况或有建议的修复/解决方法。

models.py

class UserModelView(ModelView):
     column_list = [User.username, 'address']
     form_columns = (User.username, 'address')

admin = Admin(name='Ask', template_mode='bootstrap3')
admin.add_view(UserModelView(User, db.session))

admin.py

IF((sbi.enrollment_status='Cancelled' OR sbi.enrollment_status='Disenrolled'), CONCAT(HCID, enrollment_status, created_at) IN (SELECT 
            CONCAT(hcid, enrollment_status, MIN(created_at))
            FROM
                sbi
                    WHERE sbi.enrollment_status='Cancelled' OR sbi.enrollment_status='Disenrolled'
                    Group By hcid),
            '--') AS 'Disenroll Date'

0 个答案:

没有答案