Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Restful框架模型序列化程序获得\u验证\u排除_Python_Django_Rest_Restful Architecture - Fatal编程技术网

Python Django Restful框架模型序列化程序获得\u验证\u排除

Python Django Restful框架模型序列化程序获得\u验证\u排除,python,django,rest,restful-architecture,Python,Django,Rest,Restful Architecture,你好,这是我的第一个问题。我是初学者,我正在用DRF制作我的第一个API。我熟悉django的MVT(MDC)模型。 我的问题很简单,但它们并没有很好的文档来让DRF理解很多事情。 此序列化程序中的get_validation_exclusions函数的用途是什么?您知道在哪里可以找到关于DRF的非常详细的文档吗 class PostSerializer(serializers.ModelSerializer): author = UserSerializer(required=False

你好,这是我的第一个问题。我是初学者,我正在用DRF制作我的第一个API。我熟悉django的MVT(MDC)模型。 我的问题很简单,但它们并没有很好的文档来让DRF理解很多事情。 此序列化程序中的get_validation_exclusions函数的用途是什么?您知道在哪里可以找到关于DRF的非常详细的文档吗

class PostSerializer(serializers.ModelSerializer):
   author = UserSerializer(required=False)
   photos = serializers.HyperlinkedIdentityField('photos', view_name='postphoto-list')
   # author = serializers.HyperlinkedRelatedField(view_name='user-detail',       lookup_field='username')

def get_validation_exclusions(self):
    # Need to exclude `author` since we'll add that later based off the request
    exclusions = super(PostSerializer, self).get_validation_exclusions()
    return exclusions + ['author']

class Meta:
    model = Post

资料来源:

Django REST Framwork网站将成为DRF的最佳实际文档。但是它并没有涵盖很多低层次的方法,比如这个。关于使用Python,我最喜欢的一点是,大多数包都必须包含源代码。我一直认为源代码是向更有经验的开发人员学习的最佳文档和最佳方式。使用像这样的工具可能会使阅读该来源更容易


对于这个特定的方法,它提供了一个不在其上运行验证的字段列表。默认情况下,它返回序列化程序上标记为只读的字段列表。然后,此列表作为排除kwarg传递给模型。

我通过更新get\u validation\u excludes签名修复了它,如下所示。DRF在最新版本中更新了签名

def get_validation_exclusions(self, instance=None):
    # Need to exclude `user` since we'll add that later based off the request
    exclusions = super(PostSerializer, self).get_validation_exclusions(instance)
    return exclusions + ['author']