2017-05-05 53 views
1

對於模型User我想在其中創建一個內聯模型ProjectNotes,以及如何在創建或編輯時更改字段順序? 例如,爲了改變ProjectNotes, username, email.(參見下面的圖)。flask peewee如何在編輯/創建表單時更改字段順序

class User(BaseModel): 
    username = peewee.CharField(max_length=80) 
    email = peewee.CharField(max_length=120) 

    def __unicode__(self): 
     return self.username 

class ProjectNotes(BaseModel): 
    comment = peewee.CharField(max_length=64) 
    user = peewee.ForeignKeyField(User) 

    def __unicode__(self): 
     return '%s - %s' % (self.comment) 

class UserAdmin(ModelView): 
    inline_models = (ProjectNotes,) 

admin.add_view(UserAdmin(User)) 

enter image description here

回答

1

你可以pass additional attributesform_columnsform_labelcolumn_labelsinline_models作爲字典:

class UserAdmin(ModelView): 
    inline_models = [ 
     (ProjectNotes, {'form_columns': ('user', 'comment')}) 
    ] 

或創建表單類爲您ProjectNotes型號:

from flask_admin.model.form import InlineFormAdmin 

class ProjectNotesAdmin(InlineFormAdmin): 
    form_columns = ('user', 'comment') 

class UserAdmin(ModelView): 
    inline_models = [ProjectNotesAdmin(ProjectNotes)] 

我還發現我需要指定form_columns的主鍵列flask_admin.contrib.sqla.ModelView。不知道你是否需要爲flask_admin.contrib.peewee.ModelView做同樣的事情。

+0

謝謝,我試了兩種方法,但同樣的錯誤發生:'AttributeError:'ProjectNotesForm'對象沒有屬性'id'' – Samoth

+0

@Samoth然後它看起來像'peewee.ModelView'與'sqla具有相同的問題。 ModelView'。你的'ProjectNotes'模型​​中有'id'列嗎?嘗試在你的'form_columns'中指定'id'列。 –

+0

@謝爾蓋·舒賓:沒有,是我的'ProjectNotes'型號'id',但我可以添加它,然後再試一次。 – Samoth

相關問題