【问题标题】:Validation in django rest frameworkdjango rest框架中的验证
【发布时间】:2015-03-04 14:54:00
【问题描述】:

我正在尝试验证 django rest 框架中的现有记录并遵循link

在我的序列化程序类中,我有我的类。

from django.forms import widgets
from rest_framework import serializers
from models import Part

class PartSerializer(serializers.Serializer):

    part_id = serializers.CharField(required=True, validators=[UniqueValidator(queryset=Part.objects.all())] )
    capacity = serializers.IntegerField(required=True)
    price = serializers.IntegerField(required=True)


    def create(self, validated_data):

        """
        Create and return a new `Part` instance, given the validated data.
        """
      #  try:part_exist = Part.objects.get(part_id = validated_data['part_id'])
      #  except:part_exist = None
      #  if part_exist:
      #      raise  serializers.ValidationError('Part name already exist.')
      #  else:
        return Part.objects.create(**validated_data)

但我总是收到错误name 'UniqueValidator' is not defined

我不知道如何导入它,因为文档中没有提到它。请帮助我如何做到这一点。如果不可能,我应该在视图下编写自己的验证逻辑吗?

谢谢

【问题讨论】:

    标签: python django validation rest django-rest-framework


    【解决方案1】:

    您应该从rest_framework.validators 模块导入UniqueValidator

    from rest_framework.validators import UniqueValidator
    

    【讨论】:

    • 感谢@catavaran,他们没有在验证页面的任何地方提及
    • 是的,这里的文档不清楚。他们在页面右上角有一个指向validators.py 源的小链接django-rest-framework.org/api-guide/validators
    • 或者使用带有自动导入功能的IDE。
    猜你喜欢
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 2017-09-26
    • 2017-11-02
    • 2019-07-11
    • 2019-03-16
    • 2015-08-07
    相关资源
    最近更新 更多