当前位置: 首页 > 面试题库 >

django-rest-framework如何使模型序列化器字段必填

寇桐
2023-03-14
问题内容

我有一个逐步填写的模型,这意味着我正在制作一个表单向导。

因此,此模型中的大多数字段都是必需的,但必须null=True, blank=True避免在提交部分数据时引发非空错误。

我正在使用Angular.js和django-rest-framework,我需要告诉api应该是x和y字段,如果它们为空,则需要返回验证错误。


问题答案:

您需要专门覆盖该字段并添加自己的验证器。您可以在此处详细了解http://www.django-rest-framework.org/api-
guide/serializers/#specifying-fields-explicitly
。这是示例代码。

def required(value):
    if value is None:
        raise serializers.ValidationError('This field is required')

class GameRecord(serializers.ModelSerializer):
    score = IntegerField(validators=[required])

    class Meta:
        model = Game


 类似资料:
  • 问题内容: 从文档中: read_only将此设置为True以确保序列化表示形式时使用该字段,而在反序列化期间更新实例时不使用该字段。 默认为False 必需通常,如果反序列化过程中未提供字段,则会引发错误。如果反序列化过程中不需要此字段,则设置为false。 默认为True。 因此,我有一个模型,该模型的字段不可为空,但我希望在pre_save方法中填充该字段,因此我已将该字段设置为序列化器,但

  • 问题内容: 我有一个具有可选字段的对象。我以这种方式定义了我的序列化器: 我认为 如果不存在,可以绕过该字段。但是,在文档中提到这会影响反序列化而不是序列化。 我收到以下错误: 当我尝试访问序列化实例时,这正在发生。(这是否意味着反序列化导致了这一问题?) 对于没有的实例会发生这种情况。如果我从序列化程序类中忽略它,则可以正常工作。 如何正确执行此操作?即,使用可选字段序列化对象。 问题答案: 序

  • 从文件中: read_only将其设置为True,以确保在序列化表示时使用该字段,而在反序列化期间更新实例时不使用该字段。 默认为假 required通常情况下,如果反序列化期间未提供字段,则会引发错误。如果反序列化过程中不需要此字段,则设置为false。 默认为True。 因此,我有一个模型,其中有一个字段不可为null,但我希望在pre_save方法中填充它,因此我在serializer中将该

  • 问题内容: 我使用的是Django Rest Framework,其中有以下两个序列化器: ServiceType模型如下所示: 我想通过更改相关服务(例如删除其中的一些服务)来更新现有实例。为此,我正在这样做: 我面临的问题是没有提供该字段-这意味着我得到了-尽管我在 字段中明确添加了该字段。 编辑 这是我发布的一个示例性请求(来自Chrome): 我在做什么错以及如何使用嵌套序列化程序获取对象

  • 问题内容: 假设我们有以下模型: 假设不是通过ManyRelatedPrimaryKeyField函数获得这样的结果: 让它返回包含完整相关模型表示的内容,例如: 这可能吗?如果是这样,怎么办?这是一个坏主意吗? 问题答案: 最简单的方法是使用depth参数 但是,这仅包括前向关系的关系,在这种情况下,这并不是你真正需要的,因为教师字段是反向关系。 如果你有更复杂的要求(例如,包括反向关系,嵌套一

  • 问题内容: 我是Django REST框架的初学者,需要你的建议。我正在开发Web服务。该服务必须提供与其他服务的REST接口。我需要实现的REST接口无法直接与我的模型一起使用(我的意思是获取,放置,发布,删除操作)。相反,它为其他服务提供了一些计算结果。根据请求,我的服务会进行一些计算,只是将结果返回(不将结果存储在自己的数据库中)。 以下是我对如何实现REST接口的理解。纠正我,如果我错了。