Python 无法验证django RESTFramework中的字段,如何克服这种错误

Python 无法验证django RESTFramework中的字段,如何克服这种错误,python,django,django-validation,django-rest-framework,Python,Django,Django Validation,Django Rest Framework,序列化程序.py class UserSerializer(serializers.ModelSerializer): city = CitiesSerializers() state = StatesSerializers() country = CountrySerializes() class Meta: model = User fields = ('url', 'username', 'email', 'groups', 'first_name',

序列化程序.py

class UserSerializer(serializers.ModelSerializer):
  city = CitiesSerializers()
  state = StatesSerializers()
  country = CountrySerializes()

class Meta:
    model = User
    fields = ('url', 'username', 'email', 'groups', 'first_name',    'last_name', 'company_name', 'email2', 'address',
              'country', 'state', 'city', 'pincode', 'phone_no1', 'phone_no2', )`class CountrySerializes(serializers.ModelSerializer):
class Meta:
    model = Countries
    fields = ('__all__')


class StatesSerializers(serializers.ModelSerializer):
  class Meta:
    model = States
    fields = ('__all__')


class CitiesSerializers(serializers.ModelSerializer):
  class Meta:
    model = Cities
    fields = ('__all__')  `
if serialized.is_valid():
    User.objects.create_user(company_name=company_name, email2=email2, address=address, country_id=country,
                             state_id=state, city_id=city, pincode=pincode, phone_no1=phone_no1,
                             phone_no2=phone_no2, password=password, username=username, email=email,
                             first_name=first_name, last_name=last_name, is_active=is_active)
    return Response({'status': 1, "message": "User created with this detail"}, status=status.HTTP_201_CREATED)
else:
    return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
视图.py

class UserSerializer(serializers.ModelSerializer):
  city = CitiesSerializers()
  state = StatesSerializers()
  country = CountrySerializes()

class Meta:
    model = User
    fields = ('url', 'username', 'email', 'groups', 'first_name',    'last_name', 'company_name', 'email2', 'address',
              'country', 'state', 'city', 'pincode', 'phone_no1', 'phone_no2', )`class CountrySerializes(serializers.ModelSerializer):
class Meta:
    model = Countries
    fields = ('__all__')


class StatesSerializers(serializers.ModelSerializer):
  class Meta:
    model = States
    fields = ('__all__')


class CitiesSerializers(serializers.ModelSerializer):
  class Meta:
    model = Cities
    fields = ('__all__')  `
if serialized.is_valid():
    User.objects.create_user(company_name=company_name, email2=email2, address=address, country_id=country,
                             state_id=state, city_id=city, pincode=pincode, phone_no1=phone_no1,
                             phone_no2=phone_no2, password=password, username=username, email=email,
                             first_name=first_name, last_name=last_name, is_active=is_active)
    return Response({'status': 1, "message": "User created with this detail"}, status=status.HTTP_201_CREATED)
else:
    return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
休息时的反应

{"city":["This field is required."],"state":["This field is required."],"country":["This field is required."]}
上面我提到了DRF应用程序的代码,未经验证,我无法保存用户


如果有任何与此相关的帮助,我们将不胜感激。

为什么要在未经验证的情况下保存此对象?为什么不让这些字段成为可选字段?@v1k45我怎么能选择它?在dball中我也需要它,您需要这样做,将
required=False
传递到序列化程序中的字段。e、 g.
city=CitiesSerializers(required=False)
see问题是我已经从表单视图发送了id。我已在POST中收到密钥,但无法仅使用主键进行存储。int()参数必须是字符串、类似字节的对象或数字,而不是'Countries'
CitiesSerializers(required=False)
required False之后