gpt4 book ai didi

javascript - 如何从 python django 后端获取对象的描述到前端的 AJAX?

转载 作者:行者123 更新时间:2023-11-30 15:02:02 28 4
gpt4 key购买 nike

在模型中我指定了对象描述

def __unicode__(self): ...............................

而且我希望在使用 Ajax 生成的动态下拉框中看到此描述。但我只是在下拉列表中得到 [object Object]。

我的数据按以下方式流动:

1-我的 api 中有 sanitizer

class LeaseTermSerializer(serializers.ModelSerializer):
class Meta:
model=LeaseTerm
fields = '__all__'

2-我有 api 方法在 View 中

@api_view(['GET']) @csrf_exempt def get_leaseterm(request, tid):
leasetermobj = LeaseTerm.objects.filter(lease=tid,is_active = True)
leaseterm_serializer = LeaseTermSerializer(leasetermobj, many=True)
response = Response(leaseterm_serializer.data)
return Response(response.data,status=status.HTTP_200_OK)

3-在我的模板中,我是这样构建的

function getleaseterm() {

//get a reference to the select element
$select = $('#leaseterm');
//request the JSON data and parse into the select element
var l_id = ($("select[name='lease'] option:selected").attr('value'));
l_url = "/api/get_leaseterm/"+l_id+"/";

$.ajax({
url: l_url,
dataType:'JSON',
success:function(data1){
//clear the current content of the select
$select.empty();
$select.append('<option value="-1">Select term </option>');
//iterate over the data and append a select option

$.each(data1, function(key, val){
$select.append('<option value="' + val.id + '">' + val + '</option>');
})
},

});

}

问题是,如果我没有指定要显示的字段,我在下拉列表中显示的“val”值将显示下拉列表中所有值的 [object Object] 当我希望它显示我拥有的对象的描述时为我的模型指定。

如何在下拉列表中查看我的对象描述?

最佳答案

在你的情况下 valserializer.data(意味着你的序列化器声明的 json 对象)所以结果你看到 [object Object],你对可以使用这种方式的 django 模板感到困惑。但你可以,将 charfield 添加到你的序列化程序中,然后使用它

as_char = serializers.CharField(source='__unicode__')

在 html 中:

$select.append('<option value="' + val.id + '">' + val.as_char + '</option>');

关于javascript - 如何从 python django 后端获取对象的描述到前端的 AJAX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46385431/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com