Добавить событие onclick радиокнопки django forms
Итак, у меня есть форма, для вывода которой я использую django forms, и у меня есть радиокнопки, к которым я добавил функцию onclick
, используя код ниже.
class Profile(forms.ModelForm):
class Meta:
model = User
fields = [
"username",
"email",
"first_name",
"last_name",
"avatar",
"staff_id",
"matric_no",
"library_id",
"designation",
"lib_user",
]
widgets = {
"designation": forms.RadioSelect(attrs={
"id":"label_68",
"class":"form-radio validate[required]",
"required":"",
"name":"q68_typeA68",
"onclick":"myFunction(0)",
}),
}
когда форма отображается в html, она выглядит следующим образом
<input type="radio" name="lib_user" value="" id="label_70_0" class="form-radio validate[required]" aria-describedby="label_70" name="q70_typeA70" onclick="myFunction1(0)">
<input type="radio" name="lib_user" value="Yes" id="label_70_1" class="form-radio validate[required]" aria-describedby="label_70" name="q70_typeA70" onclick="myFunction1(0)">
<input type="radio" name="lib_user" value="No" id="label_70_2" class="form-radio validate[required]" aria-describedby="label_70" name="q70_typeA70" onclick="myFunction1(0)">
Что я хочу достичь этого
<input type="radio" name="lib_user" value="" id="label_70_0" class="form-radio validate[required]" aria-describedby="label_70" name="q70_typeA70" onclick="myFunction1(0)">
<input type="radio" name="lib_user" value="Yes" id="label_70_1" class="form-radio validate[required]" aria-describedby="label_70" name="q70_typeA70" onclick="myFunction1(1)">
<input type="radio" name="lib_user" value="No" id="label_70_2" class="form-radio validate[required]" aria-describedby="label_70" name="q70_typeA70" onclick="myFunction1(2)">
Так как же мне это сделать, вот в чем мне нужна помощь.
Попробуйте сделать это, что он делает, это перезаписывает init метод формы Profile и цикл for проходит через виджеты и добавляет событие onclick:
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for i, (value, widget) in enumerate(self.fields["lib_user"].widget.choices):
widget.attrs["onclick"] = f"myFunction1({i})"