django で jquery を使用して、関連するドロップダウン値を表示したいと考えています。最初のドロップダウン リストには、python、ruby、php などの言語が含まれています。2 番目のドロップダウンには、言語に関連するフレームワークがあります。Python の場合、フレームワークは django、pylons、grok です。ルビーの場合、フレームワークはレール、キューバです。PHP の場合、フレームワークは cakephp、codeignator です。言語、フレームワーク、および Web サイトの 3 つのテーブル名を書きました。
models.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
Views.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})
display.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 には、言語用のフレームワークと Web サイトが追加されています。私の display.html では、言語に対応するフレームワークと Web サイトを表示しました。ドロップダウンで言語にアクセスしています。含まれているフレームワークの数に応じて、言語が繰り返されます。リピート無しでお願いします。また、テキスト ボックスに言語のフレームワークを 1 つずつ表示できます。ドロップドンに入れたい。Python を選択すると、Python のフレームワークが別のドロップダウンに表示されます。htmlとjqueryの書き方を教えてください。前もって感謝します。パイソンを学んでいます。だから私を導いてください。