【发布时间】:2017-05-21 18:52:39
【问题描述】:
我有一个通过模板中的 Ajax 函数调用的 Django 视图。我的模板有一个“国家”下拉菜单和一个“地区”(或州)下拉菜单。当用户单击某个国家/地区时,我想使用 Ajax 函数来获取该国家/地区的所有区域(或州)并使用该数据填充“区域”下拉列表。但是,当我的视图执行并尝试返回查询集时,我收到此错误:
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 视图可以返回多少数据?
【问题讨论】:
-
您应该返回
Response对象而不是CountryRegion对象。见docs.djangoproject.com/en/1.10/topics/http/views
标签: jquery ajax django django-views