【发布时间】:2018-07-30 06:43:15
【问题描述】:
我正在尝试在 Django 模板中显示序列化数据。我正在使用 Django Rest 框架。使用 Ajax 我刚刚尝试在 html 模板视图的文本区域中显示序列化数据。
在 view.py 中,起初,我尝试从列表中制作字典。然后将其发送到 serializer.py 以使其成为 JSON 数据。完成此操作后,我只需发送该序列化数据。从模板中,我使用 ajax 来获取这些数据并将这个值设置在一个由 ID 标识符获取的 textarea 中。
但它没有显示文本区域中的值。在 textarea 中,它只打印“[object Object]”。那么,如何在 textarea 中显示序列化的数据呢?
这是我的view.py:
@csrf_exempt
def result(request):
text = request.POST['test']
triples = getTriples(text)
keys = ['sub','predi','obj']
demo_data = dict(zip(keys,triples[0]))
serializer = SentenceListSerializer(data=demo_data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, safe=False)
Ajax 代码:
$.ajax({
method: 'POST',
dataType: 'json',
async: true,
data: {'test': info},
success: function(response_data){
$('#textareashow').val(response_data);
}
});
【问题讨论】:
-
您必须迭代 response_data。然后你会得到相应的结果。
-
我正在尝试这样做
$.each(response_data, function(key, value){ $('#textareashow').append(key + ":" + value +"\n");,但它只显示最后一个值。另一个问题:如果序列化有 2 个对象值。如何显示那些使用迭代?
标签: python ajax django django-rest-framework