我想在 django 中使用 jquery 显示相关的下拉值。我的第一个下拉列表包含 python、ruby 和 php 等语言。第二个下拉列表包含与语言相关的框架。对于 python,框架是 django、pylons、grok。对于ruby,框架是rails,cub。对于 php,框架是 cakephp、codeignator... 我写了 3 个表名语言、框架和网站。
模型.py
class languages(models.Model):
lname=models.CharField(max_length=10)
def __unicode__(self):
return self.lname
class framework(models.Model):
fname=models.CharField(max_length=25)
lang=models.ForeignKey(languages)
def __unicode__(self):
return self.fname
class website(models.Model):
wname=models.CharField(max_length=30)
framewrk=models.ForeignKey(framework)
def __unicode__(self):
return self.wname
视图.py
def lang_fun(request):
if request.method=='POST':
l=request.POST.get('l1')
languages(lname=l).save()
return HttpResponseRedirect('/frame_fun')
else:
return render(request,"languages.html")
def frame_fun(request):
if request.method=='POST':
la=request.POST.get('drop1')
f=request.POST.get('f1')
framework(lang_id=la,fname=f).save()
return HttpResponseRedirect('/web_fun')
else:
stl=languages.objects.all()
return render(request,"framework.html",{'stl':stl})
def web_fun(request):
if request.method=='POST':
fr=request.POST.get('drop2')
w=request.POST.get('w1')
website(framewrk_id=fr,wname=w).save()
return HttpResponseRedirect('/display')
else:
stl=framework.objects.all()
return render(request,"website.html",{'stl':stl})
def display(request):
s1=languages.objects.all()
s=website.objects.all()
return render(request,"display.html",{'s':s,'s1':s1})
显示.html
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#drop1').on('change', function() {
$('#text1').val($('#drop1').val());
});
});
</script>
</head>
<body>
<table id="tab1" border="1px">
<tr><th>language</th><th>framework</th><th>website</th></tr>
{% for i in s %}
<tr><td> {{i.framewrk.lang.lname}}</td>
<td>{{i.framewrk.fname}}</td>
<td>{{i.wname}}</td>
</tr>
{% endfor %}
</table>
<select id="drop1">
{% for i in s %}
<option value={{i.framewrk.fname}}>{{i.framewrk.lang.lname}}</option>
{% endfor %}
<input type="text" id="text1">
</body>
</html>
在我的 views.py 中,我添加了语言框架和网站。在我的 display.html 中,我显示了语言的相应框架和网站。正在访问下拉列表中的语言,重复的语言取决于它包含的框架数量。我想要它没有重复。我可以在文本框中一一显示语言的框架。我希望它在dropdon。当我选择 python 时,我希望 python 的框架显示在另一个下拉列表中。你能帮我写html和jquery吗?提前致谢。正在学习python。所以请指导我。