Переписать виджет Django Checkbox для использования полей записи - PullRequest
0 голосов
/ 10 января 2019

У меня есть модель с полем, которое имеет отношения ManyToMany с другой моделью. При отображении этого отношения в форме для выбора я использую цветовое кодирование флажка на основе содержимого поля в соответствующей таблице.

Итак, мои флажки генерируются следующим образом:

{% for addon in addons %}
<div class="col-xl-12">
    <div class="{% if addon.css_class == 'featured' %}checkbox-terms {% endif %}{{ addon.css_class }} extra">
        <input type="checkbox" id="{{ addon.css_class }}" name="addons" value="{{ addon.id }}" id="id_addons_{{ forloop.counter0 }}">
        <label for="{{ addon.css_class }}"><span class="{% if addon.css_class == 'featured' %}checkbox-terms{% else %}{{ addon.css_class }}{% endif %}-icon"></span>
            <div class="{{ addon.css_class }}-title">{{ addon.name }}</div>
            <div class="{{ addon.css_class }}-description">{{ addon.description }}</div>
        </label>
    </div>
</div>
{% endfor %}

Я хотел бы превратить это в подкласс виджетов форм. CheckboxSelectMultiple. Итак, я подклассы, используя:

class AddOnCheckboxSelectMultiple(forms.CheckboxSelectMultiple):
    template_name = 'django/forms/widgets/addon_checkbox_select.html'
    option_template_name = 'django/forms/widgets/addon_checkbox_option.html'

Но для того, чтобы это работало, мне нужно получить доступ к значениям полей в каждой записи при рендеринге флажков через виджет. Возможно ли это, и если да, то как мне это сделать?

Спасибо

...