1. 程式人生 > >flask-admin modelView 如何在create和edit顯示不同表單提交

flask-admin modelView 如何在create和edit顯示不同表單提交

在一個客戶專案中,對客戶來說一些沒必要的欄位,需要隱藏。

而使用flask-admin構建後臺時,它的CRUD模型的編輯和建立都是根據Model設定的。

於是我使用form_create_rules和form_edit_rules來進行選擇編輯,但是Debug命令列會總是發出警告:UserWarning: Fields missing from ruleset................,於是上網搜了一下,發現大家都是選擇忽略警告,不滿意。終於在flask-admin的api文件中找個一個欄位可以通用完成這個功能,又不需要涉及Field rules,顯示效果是一樣的,完美。。

程式碼如下:

class PostView(AdminModelView):
    """View function of Flask-Admin for Post create/edit Page includedin Models page"""

    # show columns in edit or create page
    form_columns = ('title', 'text',)

看一下效果:

沒設定之前:

設定之後

由於有些欄位都是用來做過濾用的,客戶編輯並不需要,這樣看起來清爽很多,而且不會出現csrf_token的警告。

自己備註一下,發現一個小功能:可以設定欄位為只讀模式,這個也不錯

# If you want to make them not editable in form view: use this piece:
    form_widget_args = {
        'title': {
            'readonly': True
        },
    }

Good Lucky~