django - django过滤器返回无限循环
问题描述
当我过滤一家公司的仓库时,它返回错误:
RecursionError: maximum recursion depth exceeded in comparison
def destroy(self, request, *args, **kwargs):
company = Company.objects.get(owner=self.request.user)
stores = Store.objects.filter(company=company.id)
if len(stores) <= 1:
return Response(data={'detail': 'At least one storehouse is required'}, status=status.HTTP_400_BAD_REQUEST)
return self.delete(request, *args,**kwargs)
解决方案
如果您正在使用,DestroyAPIView
则调用self.delete()
会将其返回到destroy 方法。而不是self.delete()
你应该调用 super 方法。
def destroy(self, request, *args, **kwargs):
company = Company.objects.get(owner=self.request.user)
stores = Store.objects.filter(company=company.id)
if len(stores) <= 1:
return Response(data={'detail': 'At least one storehouse is required'}, status=status.HTTP_400_BAD_REQUEST)
return super().destroy(request, *args,**kwargs)
推荐阅读
- python - 为什么我从 SQLite 数据库中选择的值不放入 python 变量中,而不等于不同变量中的相同字符串?
- excel - 用excel表中的新行替换换行符
- r - 使用 R 找到好的片段
- python - 如何使用 python re findall 和 regex 使 2 个条件可以同时运行?
- google-cloud-platform - GCP Datastore com.google.cloud.datastore.DatastoreException:事务内的查询必须有祖先
- amazon-web-services - 将 EFS 接入点挂载到 ECS 卷时出现问题
- encryption - CANBus需要加密吗?
- r - geom_smooth 绘图标签在 R 的左侧和右侧都被剪掉了
- php - 将日期与laravel中mysql json数组的每个值进行比较
- r - 如何绘制每个属性的边际分布?