【问题标题】:Django 1.4 How to customize elements inside MultipleChoiceFieldDjango 1.4 如何自定义 MultipleChoiceField 中的元素
【发布时间】:2020-05-17 15:34:02
【问题描述】:

我在MultipleChoiceField 上设置了小部件:

self.fields['field_1'] = forms.MultipleChoiceField(
            choices=[(c.name, str(c)) for c in customers],
            widget=forms.CheckboxSelectMultiple()
        )

这最终会吐出一些 html,其中 choices 中的每个 choice<label> 中的 <li> 中的 <ul> 中得到一个 <input>

我想为每个<li> 设置一个类。我需要删除每个<li> 旁边设置的项目符号,更改字体大小,甚至可能设置复选框的样式。使用 CSS 选择器可以实现,但我觉得这是一种代码味道。

我该怎么做?谢谢!

【问题讨论】:

  • 你为什么使用 Django 1.4?那是一个古老的版本。
  • 很遗憾这不取决于我。
  • 升级 Django 并不难。不是你的错,但它确实严重影响了主持节目的人的安全优先事项。
  • 您是否检查过是否可以使用class attribute in the widget?即使在 1.4 天内也应该可以使用。无论这是否满足您的需求是另一回事,我对自己尝试设计 Django/Crispy 表单的样式感到有些沮丧。
  • 我可以将类设置在我想要的父级,或者我想要的子级的子级,但是有抽象的嵌套我不知道如何访问。

标签: python django django-1.4


【解决方案1】:

widget=forms.SelectMultiple(attrs={'class': 'yourclassname multi-select'}

我认为这会添加一个类

<ul class="yourclassname multi-select">
   <li>...</li>
</ul>

然后将 css 添加到该类名中,要删除项目符号点,您只需添加此

.yourclassname 
{
  list-style: none;
}

谢谢!希望能帮助到你。

【讨论】:

    猜你喜欢
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    相关资源
    最近更新 更多