因此,我想創建一個動態表單,其中第二個下拉框基於第一個下拉列表填充。基於關閉下拉選擇創建動態下拉選項 - 卡住
我正在使用ajax
& jquery
幫助在我的django項目中構建這個動態表單,我需要一些幫助。我已經讓ajax調用正常工作,並且我已將選擇發回給表單,但現在我無法用我的選擇填充表單。
有人能幫我把json輸出變成html選項嗎?
這裏是我的ajax.py:
def switch_plan(request, *args, **kwargs):
from plans.models import Plan, OwnershipType, MemberType, PlanMember
from datetime import datetime
now = datetime.now()
json = {}
data = request.POST
plan_type = data.get('plan-plan_type')
print plan_type
if request.is_ajax():
if plan_type == '5':
ownership = OwnershipType.objects.all().exclude(id=3).exclude(id=8).exclude(id=9)
json['owner_types'] = ownership
return HttpResponse(simplejson.dumps(json), mimetype='application/json')
我plans.html JS代碼:
<script type="text/javascript">
$(function(){
$("#id_plan-plan_type").change(function() {
q = $("form").serialize();
$.ajax({
type: "POST",
url: "{% url plans-switch_plan %}",
dataType: "json",
data: q,
success: function(json) {
//need help here
}
});
});
});
$("#id_plan-ownership_type")
是選擇欄,我需要添加的選項。
編輯我的JSON輸出如下{'owner_types': [<OwnershipType: Corporate/Non-Corporate>, <OwnershipType: Estate>, <OwnershipType: In Trust For>, <OwnershipType: Joint Subscriber>, <OwnershipType: Single Subscriber>, <OwnershipType: Tenants in Common>]}
另一方面:最好不要使用硬編碼的'id's for'OwnershipType'或'pla視圖中的n_type'對象。除了完全難以閱讀外,它還取決於數據庫的格式是否正確。如果你只是在某種類型的slug類型的字段上有一個索引,那麼你就不會採用任何顯着的速度懲罰來代替,而且它會使維護這個代碼變得更容易。 – Dougal 2012-04-18 17:40:32
@Dougal謝謝,我會改變 – TheLifeOfSteve 2012-04-18 17:41:32
你試過[django-smart-selecting](https://github.com/digi604/django-smart-selects)嗎? – okm 2012-04-18 17:51:39