经过大约4-5个小时的密集调试。我放弃试图找出导致这个错误的原因,可能非常简单。尝试使用 Update 和 Patch/Put Mixins 进行此操作,但效果不佳。100%是因为queryset的原因,但是我找不到问题所在?尝试使用 .get() 和我能想到的其他一切。
我的观点非常简单:
class RemoveModel3D(generics.DestroyAPIView):
serializer_class = Model3DSerializer
def get_queryset(self):
user_pk = self.kwargs["pk"]
return Model3D.objects.filter(owners__in=[user_pk])
Run Code Online (Sandbox Code Playgroud)
PS 该查询集与 ListModelMixin 完美配合。我读到 List 用于集合,而 Retrieve/Destroy/Update 用于单个模型实例,但是如何使查询集成为单个模型实例?我在任何地方都找不到
编辑:添加与问题相关的序列化器和模型片段
序列化器:
class Model3DSerializer(serializers.ModelSerializer):
User = get_user_model()
commits = CommitSerializer(many=True, required=False, read_only=True)
favorited_by = UserSerializer(many=True, required=False, read_only=True)
date_uploaded = serializers.DateTimeField(read_only=True)
owners = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class Meta:
model = Model3D
fields = (
'id',
'title',
'owners',
'description',
'date_uploaded',
'favorited_by',
'commits'
)
Run Code Online (Sandbox Code Playgroud)
模型:
class Model3D(models.Model):
title = models.CharField(max_length=64)
# Many models many owners, …Run Code Online (Sandbox Code Playgroud) django django-queryset django-views python-3.x django-rest-framework