串行器中的HiddenField – Django REST框架

串行器中的HiddenField – Django REST框架

Django REST框架中,序列化的概念是将数据库数据转换为可被javascript使用的数据类型。每个序列化器都有一些将要被处理的字段(条目)。例如,如果你有一个名为Employee的类,其字段为Employee_id, Employee_name, is_admin等。那么,你就需要AutoField、CharField和BooleanField来通过Django存储和操作数据。同样的,序列化器也是以同样的原理工作的,并且拥有用于创建序列化器的字段。
本文围绕Django REST框架中序列化器的HiddenField展开。

HiddenField

HiddenField是一个不根据用户输入取值的字段类,而是从一个默认值或可调用值中取值。
语法 –

field_name = serializers.HiddenField(*args, **kwargs)

示例 –
例如,要包括一个总是提供当前时间的字段,作为序列化器验证数据的一部分,你将使用以下方法。

modified = serializers.HiddenField(default=timezone.now)

通常只有当你有一些验证需要根据一些预先提供的字段值来运行,但你不想将所有这些字段暴露给最终用户时,才需要HiddenField类。

如何在序列化程序中使用HiddenField

为了解释HiddenField的用法,让我们使用 “如何使用Django Rest框架创建一个基本的API?”中的相同项目设置。
现在你的项目中有一个叫做序列化器的文件,让我们创建一个以HiddenField为字段的序列化器。

# import serializer from rest_framework
from rest_framework import serializers
 
class Geeks(object):
    def __init__(self, name, hidden):
        self.name = name
        self.hidden = hidden
 
# create a serializer
class GeeksSerializer(serializers.Serializer):
    # initialize fields
    name = serializers.CharField()
    hidden = serializers.HiddenField(default = 1)
    

现在让我们创建一些对象,并尝试将它们序列化,检查它们是否真的能工作,运行,-

Python manage.py shell

现在,在shell中运行以下python命令

# import everything from serializers
>>> from apis.serializers import *

# create a object of type Geeks
>>> obj = Geeks("Naveen", 999)

# serialize the object
>>> serializer = GeeksSerializer(obj)

# print serialized data
>>> serializer.data
{'name': 'Naveen'}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程