Python 如何在DRF中检查给定电子邮件或电话号码的数据库中是否存在用户

Python 如何在DRF中检查给定电子邮件或电话号码的数据库中是否存在用户,python,django,django-rest-framework,django-serializer,Python,Django,Django Rest Framework,Django Serializer,我需要根据用户的输入检查数据库中是否存在用户:他们的电子邮件或电话号码。如果用户存在,则该用户用于接受他们的订单。如果用户同时输入他们的电子邮件和电话,但它们在数据库中不存在,我需要创建用户。我该怎么做 这是序列化程序: class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = '__all__' extra_kwargs = {

我需要根据用户的输入检查数据库中是否存在用户:他们的电子邮件或电话号码。如果用户存在,则该用户用于接受他们的订单。如果用户同时输入他们的电子邮件和电话,但它们在数据库中不存在,我需要创建用户。我该怎么做

这是序列化程序:

class UserSerializer(serializers.ModelSerializer):
   
   class Meta:
       model = User
       fields = '__all__'
       extra_kwargs = {
           'email': {'required': True},
           'phone': {'required': True}
       }

   def create(self, validated_data):
       user= User.objects.create(
           email=validated_data['email'],
           phone=validated_data['phone']
       )

       user.save()

       return user


class OrderSerializer(serializers.ModelSerializer):
   food= FoodSerializer(many=True)

   class Meta:
       model = Order
       fields = ('date','food','phone','email')
       

       def validate(self, data):
           email = data.get('email')
           phone= data.get('phone')

           if not email and not phone:
               raise serializers.ValidationError("Email or phone required")

           return data  
               
       def checkuser(self, cliente, data):

           if data['email'] or data['phone'] in user:
               return user
           elif data['email'] or data['phone'] not in user:
               pass
                   
       def create(self, validated_data):
           order = Order.objects.create(
               email=validated_data['email'],
               phone=validated_data['phone'],
               date= validated_data['date'],
               food= validated_data['food'],
               quantity= validated_data['quantity'],
           )

           order.save()

           return order
助手就是你想要的

   def create(self, validated_data):
       filters = {}
       if email := validated_data.get('email'):
           filters["email"] = email
       if phone := validated_data.get('phone'):
           filters["phone"] = phone

       user, _ = User.objects.get_or_create(**filters)
       return user

这看起来不错,但我得到了一个错误:AttributeError:“User”对象没有“food”属性,如何修复?