【问题标题】:custom django form template (in bootstrap)自定义 django 表单模板(在引导程序中)
【发布时间】:2018-05-31 21:30:49
【问题描述】:

我想自定义我的 django 表单。 例如,在我的代码中,我有工作时间设置,我喜欢以这种格式生成:

mon_start mon_end
tue_start tue_end
....

但它会创建一个表单

mon_start 
mon_end
tue_start 
tue_end
....

这是我不想要的输出视图

下面是我的代码:

forms.py

class CompanyWorkingHoursSettingsForm(forms.ModelForm):
    mon_start = forms.TimeField()
    mon_end = forms.TimeField()
    tue_start = forms.TimeField()
    tue_end = forms.TimeField()

    class Meta:
        model = Workinghours
        fields = ("mon_start","mon_end","tue_start","tue_end")

workinghourssettings.html

{% extends 'project/base.html' %}
{% load bootstrap3 %}

{% block page %}
  <div class="col-lg-12">
    <div class="panel">
      <div class="panel-heading bg-blue">
        <h4 class="panel-title text-center text-white">
          Working Hours Settings
        </h4>
      </div>
        <div class="panel-body">         
          <form method="POST" enctype="multipart/form-data">
            {% csrf_token %}            
            {% bootstrap_form company_workinghourssettings_form %}
            <button type="submit" class="btn btn-pink">Update</button>
          </form>

        </div>
      </div>
    </div>
{% endblock %}

如何为上面的表单域生成自定义排列的表单? (在引导中)

【问题讨论】:

  • 我建议您“解压”您的表单并手动使用引导库,而不是使用名为 bootstrap3 的 django 扩展... 这样做:docs.djangoproject.com/en/2.0/topics/forms/… ... 呈现表单字段后手动添加引导 css 的类!
  • 首先,阅读引导程序如何使用grid system。其次,您需要更改 company_workinghourssettings_form 中的 HTML
  • 用脆的形式会好很多

标签: python django twitter-bootstrap forms


【解决方案1】:

如果问题出在占位符上,您可以使用

mon_start =forms.TimeField(label='the label', widget=forms.TextInput(attrs={'placeholder': 'What ever you want here'}))

【讨论】:

    【解决方案2】:

    按照 cmets 中的建议,您可以尝试逐个渲染字段,并应用引导网格:

    <form>
    
        <div class="row">
    
            <div class="col-md-6">{{ my_form.field_1 }}</div>
            <div class="col-md-6"{{ my_form.field_2 }}></div>
    
        </div>
        ....
    
    
    </form>
    

    【讨论】:

    • 谢谢,它有效。但是我如何为字段添加引导表单控件。我可以在 forms.py 字段定义中做吗?
    • 是的,检查另一个答案,在小部件属性中你可以定义mon_start =forms.TimeField(label='the label', widget=forms.TextInput(attrs={'class': 'form-control'}))
    猜你喜欢
    • 2014-02-06
    • 2017-05-02
    • 1970-01-01
    • 2014-07-12
    • 2011-10-05
    • 2013-03-28
    • 1970-01-01
    • 2018-04-14
    • 2021-04-14
    相关资源
    最近更新 更多