【问题标题】:Customizing Select in Django在 Django 中自定义选择
【发布时间】:2013-10-23 13:17:51
【问题描述】:

我有以下型号

class Color(models.Model):
    """
    Colors
    """
    name = models.CharField(max_length=50, db_column="name", unique=True)
    hex = models.CharField(max_length=6, db_column="hex", unique=True)

此模型是其他模型的外键,因此表示为下拉列表。 我想修改这个列表,使它看起来像

<select>
<option style="background-color:#hex1">name1</option>
<option style="background-color:#hex2">name2</option>
</select>

我知道 django 已经这样做了,除了样式。 我也知道我需要扩展 select Widget 并覆盖 render_option 方法,但我不知道如何将十六进制值传递给新的小部件。 我该怎么做?

谢谢。

【问题讨论】:

  • 您这样做的目的是什么?如果要设置表单样式,则应使用 css。您提供的背景颜色变量也无效。
  • 我想要视觉颜色选择而不是简单。如果每个选项都有不同的背景,CSS 将如何提供帮助?
  • 您是否尝试在选项文本旁边显示图像或样本来创建选择?
  • 我不想选择图像。我只想根据 db 的值设置选项的背景。

标签: python django django-templates django-widget


【解决方案1】:

除非我误解了你可以使用基本 django 模板的问题。假设您将颜色的 QuerySet 传递为 colours,那么您将使用:

<select>
{% for colour in colours %}
<option style="background-color:#{{ colour.hex }}">{{ colour.name }}</option>
{% endfor %}
</select>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 2020-01-10
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多