使用bootstrap在模板上发布渲染django

时间:2017-07-25 07:23:57

标签: django forms templates

我正在尝试使用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())

0 个答案:

没有答案