首页 > 解决方案 > django "无效的 pk \"1\" - 对象不存在。" id是否存在

问题描述

class ReturnItemsSerializer(serializers.ModelSerializer):
    returns = serializers.PrimaryKeyRelatedField(queryset=ReturnItems.objects.all())
    returnreasons = serializers.PrimaryKeyRelatedField(queryset=ReturnReasons.objects.all())

    class Meta:
        model = ReturnItems
        fields = [
            "id",
            "updated_at",
            "returns",
            "returnreasons"

        ]
        depth = 1


class ReturnItems(models.Model):  
    updated_at = models.CharField(max_length=256, null=True, blank=True)
    returns = models.ForeignKey(Returns,on_delete=models.CASCADE, related_name='returnitems',  null=True, blank=True)
    returnreasons = models.ForeignKey(ReturnReasons,on_delete=models.CASCADE, related_name='returnitems', null=True, blank=True)



{
"returnreasons": 1,
"returns": 1
}


{
"returns": [
    "Invalid pk \"1\" - object does not exist."
],
"returnreasons": [
    "Invalid pk \"1\" - object does not exist."
]
}

嗨,我在这里尝试使用swagger post方法在 django 中创建数据。在上面分享我如何发送数据。

returnreasons返回模型中都有 1 的 id,但是它仍然给我响应,就像对象不存在一样。

请看一看

我失踪的地方。

标签: django

解决方案


看起来您正在发送非常奇怪strings的“returnreasons”:"1"其中引号是该字符串的一部分,因此 Django 尝试使用 pk= 查找对象"1"(使用引号而不是数字)。尝试从请求中删除引号。


推荐阅读