django rest framework ModelSerializer post d

2024-10-01 11:31:10 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,在模型.py

class UserComment(models.Model):
    user = models.ForeignKey(User)
    rate = models.IntegerField()
    description = models.CharField(max_length=512)
    createTime = models.DateTimeField(auto_now=True)
    def __unicode__(self):
        return '<UserComment {%s %d}>' % (self.user.username, self.rate)

然后,序列化程序.py

^{pr2}$

视图.py

class UserCommentViewSet(viewsets.ModelViewSet):
    queryset = UserComment.objects.all()
    serializer_class = UserCommentSerializer
    permission_classes = (permissions.IsAuthenticatedOrReadOnly, )

    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.DATA, files=request.FILES)
        serializer.is_valid()
        print serializer.errors
        print serializer.data
        return super(UserCommentViewSet, self).create(request, *args, **kwargs)

然后我发布json数据 {"user":{"id":"1","username":"watsy"},"rate":"5","description":"hello"}

我想,它会起作用的。把它插入数据库,但我得到了错误。在

{"user": [{"username": ["User with this Username already exists."]}]}
>;,我不知道。在


Tags: pyselfreturnratemodelsrequestdefusername
1条回答
网友
1楼 · 发布于 2024-10-01 11:31:10

您需要对序列化程序进行一些更改:

class UserCommentSerializer(serializers.ModelSerializer):
    user = serializers.PrimaryKeyRelatedField(read_only=True)
    class Meta:
        model = UserComment
        depth = 1

现在请通过您的JSON请求:

^{pr2}$

相关问题 更多 >