小编Vik*_*lev的帖子

Django - DRF 删除/检索/补丁返回 404 { 详细信息:“未找到”}

经过大约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

5
推荐指数
1
解决办法
5590
查看次数