Python 返回现有记录,而不是创建RESTAPI框架
在我的API中,我有一个create视图绑定,它引用了另一条记录OneToOne。但是,有时用户似乎会同时发送两个请求,而第二个请求由于重复记录冲突而失败:Python 返回现有记录,而不是创建RESTAPI框架,python,django,rest,django-rest-framework,Python,Django,Rest,Django Rest Framework,在我的API中,我有一个create视图绑定,它引用了另一条记录OneToOne。但是,有时用户似乎会同时发送两个请求,而第二个请求由于重复记录冲突而失败: class CreateProfileLink(generics.CreateAPIView): def perform_create(self, serializer): ins = serializer.save(user=self.request.user) serializer_class =
class CreateProfileLink(generics.CreateAPIView):
def perform_create(self, serializer):
ins = serializer.save(user=self.request.user)
serializer_class = ProfileLinkSerializer
如果记录已经存在,是否有一种方法可以重写create方法以返回记录,而不是创建记录?您可以在序列化程序类中通过重写其方法来使用:
由于您尚未提供您的models.py
,因此我在这里使用Profile
作为模型名称。如果它与您的项目不同,请确保将其替换
class ProfileLinkSerializer(serializers.ModelSerializer):
...
class Meta:
model = Profile
fields = (...)
def create(self, validated_data):
profile, _ = Profile.objects.get_or_create(**validated_data)
return profile