Wtforms-炼丹字段顺序

我使用wtforms - 炼金术在我的龙卷风应用渲染SQLAlchemy的模式,以HTML形式是这样的:Wtforms-炼丹字段顺序

class UserProfileForm(ModelForm): 

class Meta:

model = models.User

only = ['username', 'first_name', 'last_name']

它工作得很好,但表单上的字段是为了姓氏,用户名,名字,这可能会让用户感到困惑。有没有办法设置生成的表单字段的特定顺序?

回答:

我做了什么this后提出,其已经为我工作完美无缺。

简而言之,添加一个指定正确顺序的类关键字,然后更新_unbound_fields从iter字段按正确的顺序。

回答:

您应该将表单的渲染放在模板中。

{{ form.username }} 

{{ form.first_name }}

{{ form.last_name }}

回答:

解决方案https://stackoverflow.com/a/18475322/892040从ModelForm继承时不起作用。然而,这确实有效:

class ItemReview(ModelForm): 

class Meta:

model = Item

_field_order = ['field1', 'field2']

def __init__(self, *args, **kwargs):

super(ItemReview, self).__init__(*args, **kwargs)

field_order = getattr(ItemReview, '_field_order')

visited = []

if field_order:

new_fields = OrderedDict()

for field_name in field_order:

if field_name in self._fields:

new_fields[field_name] = self._fields[field_name]

visited.append(field_name)

for field_name in self._fields:

if field_name in visited:

continue

new_fields[field_name] = self._fields[field_name]

self._fields = new_fields

以上是 Wtforms-炼丹字段顺序 的全部内容, 来源链接: utcz.com/qa/260181.html

回到顶部