J'utilise django.Je veux vérifier un radiobutton particulier dans certains groupes de radiobutton lorsque la page charge?
Ma page fonctionne comme ceci, Si je coche le bouton radio et clique sur soumettre. il redirige vers la même page avec des emplois redéfinis sur la base desquels les radiobuttons ont été vérifiés. Mon problème est after loading the page none of the radio buttons are checked
.
Je veux vérifier le bouton radio qui sont vérifiés avant que je clique soumettre
Code
class MyHome(View):
filter_options=(
(('exp','Jobs by Experience'),
(['l1','Less Than 1 year',0],
['1b2','1 to 2 Years',0],
['2b3','2 to 3 Years',0],
['3b5','3 to 5 Years',0],)),
(('sal','Jobs by Salary'),
(['l1000','Less Than $1000',0],
['1000b3000','$1000 to $3000',0],
['3000b5000','$3000 to $5000',0])),
(('loc','Jobs by Location'),
(['che','Chennai',0],
['ban','Banglore',0])),
)
def get(self, request):
from django.db.models import Q
jobs=Job.objects.all().order_by("-postdate")
c_radio=[]
if 'exp' in request.GET:pass
if 'sal' in request.GET:
fl=request.GET['sal']
c_radio.append(fl)
if 'l' in fl:
#return HttpResponse(fl[1:])
q1=Q(basicpay__lte=fl[1:])
self.filter_options[1][1][0][2]=1
jobs=jobs.filter(q1)
elif 'b' in fl:
jobs=jobs.filter(basicpay__range=fl.split('b'))
self.filter_options[1][1][1][2]=1
if 'loc' in request.GET:
c_radio.append(request.GET["loc"])
jobs=jobs.filter(gmaplocation__district__icontains=request.GET["loc"])
#[2][1][1] ['ban', 'Banglore', 0]
return render(request,'job/jobs.html',{"jobs":jobs,'fopts':self.filter_options,'c_radio':c_radio})
html
{% for opts in fopts %}
<div class="accordion-group">
<div class="accordion-heading emp">
<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse{{ forloop.counter }}"><!--item 1-->
{{ opts.0.1 }}
</a>
</div>
<div style="height: 0px;" id="collapse{{ forloop.counter }}" class="accordion-body collapse">
<div class="accordion-inner">
{% for opt in opts.1 %}
<label class="radio">
<input type="radio" name="{{ opts.0.0 }}" value="{{ opt.0 }}"{% ifequal opt.0.2 1 %} checked{% endifequal %}> {{ opt.1 }}{{ opt.0.2 }}
</label>
{% endfor %}
<!--<label class="checkbox">
<input type="checkbox" name="redefine"> Other
<input type="text" name="other">
</label>-->
</div>
</div>
</div><!--/accordion-group-->
{% endfor %}
mise à jour:
Cela a fonctionné pour moi:
class RedefineChoices(forms.Form):
CHOICES_EXP=(('l1','Less Than 1 year'),
('1b2','1 to 2 Years'),
('2b3','2 to 3 Years'),
('3b5','3 to 5 Years'),
)
CHOICES_SAL=(('l1000','Less Than $1000'),
('1000b3000','$1000 to $3000'),
('3000b5000','$3000 to $5000'),
)
CHOICES_LOC=(('che','Chennai'),
('ban','Banglore'),)
exp = forms.ChoiceField(choices=CHOICES_EXP, widget=forms.RadioSelect(),label='Jobs by Experience')
sal = forms.ChoiceField(choices=CHOICES_SAL, widget=forms.RadioSelect(),label='Jobs by Salary')
loc = forms.ChoiceField(choices=CHOICES_LOC, widget=forms.RadioSelect(),label='Jobs by Location')enter code here
Qu'avez-vous essayé? :) –
J'ai stocké une variable dans views.py qui définit si le bouton radio est coché ou non, par exemple 0 dans '(['l1', 'Moins de 1 an', 0],' puis l'utilise dans un template comme '< input type = "radio" name = "{{opts.0.0}}" {% ifequal opt.0.2 1%} vérifié {% endifequal%} ' – suhailvs