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