2017-05-05 79 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

相关问题