我正在尝试使用bootstrap在模板中渲染我的django表单,并且我一直收到错误: 绑定列'对象没有属性'字段'
这是我尝试的:
{% for field in layer_form %}
{{ field | as_bootstrap }}
{% endfor %}
如果我试试这个:
{{ layer_form|as_bootstrap }}
然后它的工作原理。但我需要遍历表单字段并在其间附加一些if语句。
知道这里发生了什么吗?
上述内容适用于另一种形式但不适用于此类:
lass ResourceBaseForm(TranslationModelForm):
"""Base form for metadata, should be inherited by childres classes of ResourceBase"""
owner = forms.ModelChoiceField(
empty_label="Owner",
label="Owner",
required=False,
queryset=Profile.objects.exclude(
username='AnonymousUser'),
widget=autocomplete_light.ChoiceWidget('ProfileAutocomplete'))
_date_widget_options = {
"icon_attrs": {"class": "fa fa-calendar"},
"attrs": {"class": "form-control input-sm"},
"format": "%Y-%m-%d %H:%M",
# Options for the datetimepickers are not set here on purpose.
# They are set in the metadata_form_js.html template because
# bootstrap-datetimepicker uses jquery for its initialization
# and we need to ensure it is available before trying to
# instantiate a new datetimepicker. This could probably be improved.
"options": False,
}
date = forms.DateTimeField(
localize=True,
widget=DateTimePicker(**_date_widget_options)
)
temporal_extent_start = forms.DateTimeField(
required=False,
localize=True,
widget=DateTimePicker(**_date_widget_options)
)
temporal_extent_end = forms.DateTimeField(
required=False,
localize=True,
widget=DateTimePicker(**_date_widget_options)
)
poc = forms.ModelChoiceField(
empty_label="Person (fill form)",
label="Point Of Contact",
required=False,
queryset=Profile.objects.exclude(
username='AnonymousUser'),
widget=autocomplete_light.ChoiceWidget('ProfileAutocomplete'))
metadata_author = forms.ModelChoiceField(
empty_label="Person (fill form)",
label="Metadata Author",
required=False,
queryset=Profile.objects.exclude(
username='AnonymousUser'),
widget=autocomplete_light.ChoiceWidget('ProfileAutocomplete'))
keywords = TaggitField(
required=False,
help_text=_("A space or comma-separated list of keywords"),
widget=TaggitWidget('TagAutocomplete'))
regions = TreeNodeMultipleChoiceField(
required=False,
queryset=Region.objects.all(),
level_indicator=u'___')
regions.widget.attrs = {"size": 20}
使用这种简单的形式:
class UploadCSVForm(forms.Form):
def __init__(self, *args, **kwargs):
super(UploadCSVForm, self).__init__(*args, **kwargs)
self.fields['selected_country'] = forms.MultipleChoiceField(choices=get_country_names(), required=True)
title = forms.CharField(max_length=80, required=True)
LAYER_TYPE = (
('1', 'Global Layer'),
('2', 'Layer by Region'),
('3', 'Layer by Province'),
)
layer_type = forms.ChoiceField(choices=LAYER_TYPE, required=True)
csv = forms.FileField(required=True)
permissions_json = forms.CharField(max_length=500, widget=forms.HiddenInput())