Django: Как изменить идентификатор css для ModelMultipleChoiceField в форме? - PullRequest
1 голос
/ 09 февраля 2012

Одна из моих форм использует ModelMultipleChoiceField и показывает список флажков в html.

class CreateProfileForm(forms.Form):
    first_name = forms.CharField(label='First Name', max_length=50)
    last_name = forms.CharField(label='Last Name', max_length=50)
    topics = forms.ModelMultipleChoiceField(label='Assign Topic(s)', 
            widget=CheckboxSelectMultiple(),
            queryset=None)

    def __init__(self, *args, **kwargs):
        event = kwargs.pop('event')
        super (CreateProfileForm, self).__init__(*args, **kwargs)
        self.fields['topics'].queryset = Topic.objects.filter(event=event)

HTML вывод

<div id="div_topics">
    <label class="fields">
        <strong><label for="id_topics_0">Assign Topic(s)</label></strong>
    </label>
    <ul>
<li><label for="id_topics_0"><div class="checker" id="uniform-id_topics_0"><span><input type="checkbox" name="topics" value="3" id="id_topics_0" style="opacity: 0; "></span></div> Size</label></li>
<li><label for="id_topics_1"><div class="checker" id="uniform-id_topics_1"><span><input type="checkbox" name="topics" value="2" id="id_topics_1" style="opacity: 0; "></span></div> Flavour</label></li>
<li><label for="id_topics_2"><div class="checker" id="uniform-id_topics_2"><span><input type="checkbox" name="topics" value="1" id="id_topics_2" style="opacity: 0; "></span></div> Citrus</label></li>
</ul>
</div>

Как изменить значение id элемента input type? Или просто поменять id_topics_0 и т. Д. На что-то еще?

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

Попробуйте это

def __init__(self, *args, **kwargs):
    event = kwargs.pop('event')
    super (CreateProfileForm, self).__init__(*args, **kwargs)
    self.fields['topics'].queryset = Topic.objects.filter(event=event)
    self.fields['topics'].widget.attrs['class'] = "new_topics_class"
0 голосов
/ 09 февраля 2012

Вы можете добавить опцию auto_id для формирования начального метода.Но это изменит все идентификаторы для этой формы: https://docs.djangoproject.com/en/1.3/ref/forms/api/#configuring-html-label-tags

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...