How*_*ott 6 python django django-models django-rest-framework
我正在使用 Django Rest Framework CreateAPIView 来创建评论。到目前为止一切都很好,这是我的代码。
楷模
class Posts(models.Model):
title = models.CharField(max_length=512, null=True)
slug = models.CharField(max_length=512, null=True)
class Comments(models.Model):
post = models.ForeignKey(Posts, on_delete=models.CASCADE)
content = models.CharField(max_length=5000, null=True)
Run Code Online (Sandbox Code Playgroud)
串行器
class CommentCreateSerializer(ModelSerializer):
class Meta:
model = Comments
fields = [
'content',
'post'
]
Run Code Online (Sandbox Code Playgroud)
并查看
class CommentCreateView(CreateAPIView):
permission_classes = [IsAuthenticated]
queryset = Comments.objects.all()
serializer_class = CommentCreateSerializer
Run Code Online (Sandbox Code Playgroud)
我向创建路线发送了一个帖子请求,post(ID)并且content一切正常。但问题是我想传递帖子slug而不是帖子 ID。
我不知道我该怎么做。我熟悉lookup_fields,但我不确定如何将它们应用于外键匹配。
当您在 Comment Create 请求上传递值时,可以使用SlugRelatedField来CommentCreateSerializer使用slug而不是pkpost,如下所示:
class CommentCreateSerializer(ModelSerializer):
post = serializers.SlugRelatedField(
queryset=Posts.objects.all(), slug_field='slug'
)
class Meta:
model = Comments
fields = [
'content',
'post'
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1569 次 |
| 最近记录: |