在Django中设置单选按钮的ID

Hou*_*man 3 django

Django 1.4允许对无线电选择进行细粒度处理,这很棒

{% for radio in form.important_client reversed%}
      {{radio.tag}}<label for="????">{{radio.choice_label}}</label>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

但是由于使用这种方法的一些奇怪的原因,<input>没有ID.因此我无法相应地设置<label for='ID' />.这会导致我的CSS出现大问题.

无论如何仍然可以获得ID设置?

Ser*_*ney 5

在调试RadioSelect渲染时,我不知道如何优雅地使用无线电标签和标签.所以这是我尝试解决你的问题:

{% for radio in form.important_client reversed %}
    <input name="{{ radio.name }}" type="radio" id="radio_{{ radio.index }}" value={{ radio.choice_value }}>
    <label for="radio_{{ radio.index }}">{{ radio.choice_label }}</label>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

radio.index您可以使用,而不是未记录的属性forloop.counter.

以防我附上调试窗口的屏幕截图,其中radio显示了上下文的示例(form_of_field图中的变量): 无线电选择调试

  • 对于仍在寻找如何在 django 2.1 及更高版本中呈现价值的人们请注意。在模板中使用 radio.data.value (2认同)