forms.py
from django import forms
BINDING = (
("1","Coil Bound Paperback"),
("2","Perfect Bound Paperback"),
("3","Saddle Stitch Paperback"),
)
class BindingForm(forms.Form):
my_binding_choice = forms.ChoiceField(choices=BINDING,widget
=forms.RadioSelect())
views.py
from django.shortcuts import render,render_to_response
from .forms import MyForm,BindingForm
def my_binding_view(request):
form = BindingForm()
return render(request,"base.html",{"binding_form":form})
template.html
{% for radio in binding_form %}
<div class="myradio">
{{ radio }}
</div>
{% endfor %}
"" "¿Pero quiero agregar imágenes a mis elecciones para que se muestren en la lista de selección de radio, o eso se puede lograr en otro método?" ""
Respuestas
0 para la respuesta № 1Puedes subclase RadioSelect
y especifica tu propio option_template_name
que determinará cómo se representa cada opción individual:
class CustomRadioSelect(RadioSelect):
option_template_name = "myapp/radio_option_custom.html"
# Then use this widget in your form
class BindingForm(forms.Form):
my_binding_choice = forms.ChoiceField(choices=BINDING,
widget=CustomRadioSelect())
Luego proporcione una plantilla myapp/radio_option_custom.html
eso hace que cada opción sea como quieras. La plantilla predeterminada es aquí para que pueda comenzar con eso y agregar los bits que necesite.