【发布时间】:2021-10-27 21:00:51
【问题描述】:
在 django 中,我能够使用字典传递数据。就像我在字典中设置对象并将其传递给 return render 并在前端调用对象 (return render(request, 'c.html', context) 对吗?那么我该如何在 django rest 中执行此操作?
【问题讨论】:
标签: django django-rest-framework
在 django 中,我能够使用字典传递数据。就像我在字典中设置对象并将其传递给 return render 并在前端调用对象 (return render(request, 'c.html', context) 对吗?那么我该如何在 django rest 中执行此操作?
【问题讨论】:
标签: django django-rest-framework
如果你使用的是 django rest framework,你可以像这样在 rest 框架中返回响应。
context = {'key':'value'}
return Response(context)
或者如果您使用的是序列化程序,那么
return Response(serializer.data)
【讨论】:
context = { 'product':product_serializer.data, 'related_products': related_products_serializer.data } return Response(context)
在 Django REST Framework 中,序列化的概念是将 DB 数据转换为 javascript 可以使用的数据类型。每个序列化程序都带有一些将要处理的字段。例如,如果您有一个名为 Employee 的类,其字段为 Employee_id、Employee_name、is_admin 等。那么,您将需要 AutoField、CharField 和 BooleanField 来通过 Django 存储和操作数据。类似地,序列化器也使用相同的原理,并且具有用于创建序列化器的字段。
DictField 基本上是一个字典字段,它根据对象字典验证输入。它有以下参数:
child 和 allow_empty 像这样>>>
field_name = serializers.DictField(*args, **kwargs)
例如document = DictField(child=CharField())
你可以像下面这样使用序列化器>>>
from rest_framework import serializer
class Any(object):
def __init__(self, dictonary):
self.dict = dictionary
class AnySerializer(serializers.Serializer):
dictionary = serializers.DictField(
child = serializers.CharField())
您可以访问similar problem了解真正的问题。
这个link 是您问题的完整文档。你可以看看这个。
【讨论】: