我有一个Django视图,我通过模板中的Ajax函数调用。我的模板有一个'Country'下拉和一个'Region'(或State)下拉。当用户单击Country时,我想使用Ajax函数来获取该国家/地区中的所有区域(或状态),并使用该数据填充“Region”下拉列表。但是,当我的视图执行并尝试返回查询集时,我收到此错误:
ValueError: too many values to unpack
这是模板标签和Ajax功能:
# demo.html
<select id="id_country" name="country" onchange="getState(this.value);">
<option value="" selected="selected">Please choose...</option>
<option value="US">United States</option>
<option value="GB">United Kingdom</option>
<option value="CA">Canada</option>
</select>
<script>
function getState(val) {
$.ajax({
type: "GET",
url: "/demo/get_region",
data:'country_id='+val,
success: function(data){
$("#id_region").html(data);
}
});
}
</script>
以下是观点:
# views.py
from location.models import CountryRegion
def get_region(request):
country_id = request.GET.get('country_id', None)
country_region = CountryRegion.objects.filter(country_cd=country_id)
# Error occurs here on the return
return country_region
模型(我意识到它没有标准化)看起来像这样:
class CountryRegion(models.Model):
country_cd = models.CharField(max_length=2)
country_name = models.CharField(max_length=50)
region_cd = models.CharField(max_length=3)
region_name = models.CharField(max_length=50)
数据库记录如下所示:
id country_cd country_name region_cd region_name
59 US United States NY New York
为什么会出现此错误?如果国家代码是“美国”,我会 返回50个实例,每个州一个。是否有一些限制 Django视图可以返回的数据量?
答案 0 :(得分:0)
你必须先导入json,
import json
然后返回HttpResponse(
json.dumps(country_region),
CONTENT_TYPE =&#34;应用/ JSON&#34;
)