我有两个选择框,一个是country
,另一个是state
。这两个值都可以访问数据库。我选择了国家/地区选择框,然后自动更改了与该国家/地区选择框相关的另一个选择框值更改。
示例:我选择了国家/地区印度,然后自动获取另一个选择框的值状态。我正在使用 ajax 获取值。
def constituency1(request):
country= Loksabha.objects.values('country_name').distinct('country_name')
terms = Loksabha.objects.values('lok_sabha').distinct('lok_sabha')
states=Loksabha.objects.values('state_name').distinct('state_name')
if 'p1' in request.GET and request.GET['p1']:
p1 = request.GET['p1']
states=Loksabha.objects.values('state_name').distinct('state_name').filter(country_name='p1')
if 'p2' in request.GET and request.GET['p2']:
p2 = request.GET['p2']
state_filter = Loksabha.objects.filter(state_name=p1,constituency_name=p2)
最佳答案
您需要使用一点 AJAX/JQuery。
#models.py
class Country(models.Model):
country = models.CharField(max_length=20)
class State(models.Model):
state = models.Charfield(max_length=20)
country = models.ForeignKey(state)
#views.py
def filter (request):
try:
kwargs = {smart_str('country'): request.GET['q']}
except KeyError:
raise Http404
qs = State.objects.filter(**kwargs).values('pk', 'name')
response = HttpResponse(
content=dumps(list(qs)),
mimetype='application/json'
)
return response
#urls.py
urlpatterns = patterns('',
url(r'^locations/filter/state-by-country/$', 'filter', name='state_filter')
...
)
将此添加到您的模板
//JQuery chained select plugin
$(function() {
$('#id_state').chainedSelect({
parent: '#id_country',
url: 'locations/filter/find-by-country',
value: 'id',
label: 'name'
});
});
关于javascript - 如何选择框值可以在 Django 中更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22301896/