从django form获取字段和小部件列表

时间:2016-03-30 01:45:09

标签: python django

我正在使用django 1.9来构建高度定制的系统。部分原因是我必须从多种形式中提取字段列表及其相关的小部件。

例如,来自这样的事情:

from django import forms
class PortfolioForm(forms.Form):
    organisation_id = forms.IntegerField(label='organisation_id', required=True)
    portfolio_id = forms.IntegerField(label='portfolio_id', required=False)
    portfolio_name = forms.CharField(label='portfolio_name', max_length=50, required=True)

我希望能够获得这样的元组或列表列表:

(
    (organisation_id, <widget_name>),
    (portfolio_id, <widget_name>),
    (portfolio_name, <widget_name>)
)

DeclarativeFieldsMetaclass mixin似乎阻止了这个从.fields属性中取出

任何想法如何做到这一点?或者通过模板提取是否更好?

1 个答案:

答案 0 :(得分:0)

form = PortfolioForm()
tuple((field_name, form.fields[field_name].widget.__class__) for field_name in form.fields)

在方法中,您可以更改form.

上的self.