【问题标题】:Django form using bootstrap使用引导程序的 Django 表单
【发布时间】:2018-09-19 04:43:31
【问题描述】:

我有以下字典:

POSSIBLE_POSITIONS = (
    ('1', 'Brazo'),
    ('2', 'Muñeca'),
    ('3', 'Pierna'),
    ('4', 'Pie'),
)

以下列形式使用:

from interface.positions import *
from django import forms

class PositionForm(forms.Form):
    position = forms.ChoiceField(choices = POSSIBLE_POSITIONS, label="", initial=1, widget=forms.Select())

这是呈现我的 html 模板的视图:

def add(request):
    return render(request, 'interface/add_user.html', {'device_list': Device.objects.all(), 'form': PositionForm()})

这是html代码:

<body>
    <form class="square" action="{% url 'interface:add_perform' %}" method="post">
        {% csrf_token %}
        <div class="form-group">
            <label>ID paciente</label>
            <input autofocus class="form-control" name="user_id" placeholder="Ejemplo: 58192">
        </div>
        <div class="form-group">
            <label>Dispositivo a usar</label>
            <select name="device_id" class="form-control">
                {% for device in device_list %}
                    <option>{{ device.id }}</option>
                {% endfor %}
                <option selected="selected"> Sin dispositivo </option>
            </select>
        </div>
        <div class="form-group">
            <label>Posición dispositivo</label>
            <div class="form-control"> {{ form }} </div>
        </div>
        <div class="form-group square_button">
            <button class="btn btn-success btn-md form-control" type="submit"> Crear Paciente </button>
        </div>
    </form>
</body>

问题在于,正如您在下图中看到的,这不是引导 css,所以它真的很奇怪。我该如何解决?

我希望它像 'Dispositivo a usar' 选择器。

已解决

我在这里找到了解决方案:Define css class in django Forms

【问题讨论】:

    标签: html css django twitter-bootstrap forms


    【解决方案1】:

    遍历表单对象并在选择标签中设置form-control 类。它应该可以工作。

    def __init__(self, *args, **kwargs):
        super(PositionForm, self).__init__(*args, **kwargs)
        self.fields['position'].widget.attrs['class'] = 'form-control'
    

    【讨论】:

    • 这必须放在 PositionForm 类上,不是吗?它会引发一个带有“名称”的关键错误。
    • 你应该为position设置它
    【解决方案2】:

    直接在表单上添加css类即可解决:

    class PositionForm(forms.Form):
        position = forms.ChoiceField(choices = POSSIBLE_POSITIONS, label="", initial=1, widget=forms.Select(
            attrs={
                'class': 'form-control'
            }
        ))
    

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 2013-11-06
      • 2015-02-24
      • 2013-04-28
      • 2014-09-20
      • 1970-01-01
      • 2013-07-23
      • 2013-09-19
      • 2021-05-20
      相关资源
      最近更新 更多