相关疑难解决方法(0)

将反向关系与Django-rest-framework的序列化器一起使用

我的模型如下所示:

class User(TimestampedModel):
    name = models.CharField(max_length=30, null=False, blank=False)
    device = models.CharField(max_length=255, null=False, blank=False)


class Comment(TimestampedModel):
    user = models.ForeignKey(User, on_delete=models.PROTECT, blank=True, null=True)
    contents = models.CharField(max_length=510)
    rating = models.IntegerField(blank=False, null=False)
Run Code Online (Sandbox Code Playgroud)

我的序列化器如下所示:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('name',)


class CommentListItemSerializer(serializers.ModelSerializer):
    user = UserSerializer()

    class Meta:
        model = Comment
        fields = ('user', 'contents', 'rating')
Run Code Online (Sandbox Code Playgroud)

和视图:

class CommentsList(generics.ListAPIView):
    serializer_class = CommentListItemSerializer
    queryset = Comment.objects.all()
Run Code Online (Sandbox Code Playgroud)

它几乎完成了工作;)。我得到的响应如下所示:

"results": [
    {
        "user": {
            "name": "Ania"
        },
        "contents": "Very good",
        "rating": 6
    },
    {
        "user": …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

2
推荐指数
1
解决办法
2210
查看次数

标签 统计

django ×1

django-rest-framework ×1