出现在这种错误的原因是:
def perform_create(self, serializer): instance = serializer.save(user=self.request.wxuser) return instance
如上代码所示,当我们通过这种方式去设置user时,如果保存的对象与user的关系是一对一的关系,那么当user已经与对象关联,再次进行save时则会报错,Unique constraint failed。
解决方案是:
添加一层校验,然后抛出异常
def perform_create(self, serializer): queryset = BusinessCard.objects.filter(user=self.request.wxuser) if queryset.exists(): raise ValidationError('名片已存在') instance = serializer.save(user=self.request.wxuser) return instance
版权声明:本文为u010377372原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。