Django Rest Framework - поля просмотра CreateKIView ForeignKey - PullRequest
0 голосов
/ 09 февраля 2019

Я использую 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)

Сериализатор

class CommentCreateSerializer(ModelSerializer):

    class Meta:
        model = Comments
        fields = [
            'content',
            'post'
        ]

и просмотр

class CommentCreateView(CreateAPIView):
    permission_classes = [IsAuthenticated]
    queryset = Comments.objects.all()
    serializer_class = CommentCreateSerializer


Я отправилотправка запроса на создание маршрута с post(ID) и content и все заработало.Но проблема в том, что я хочу передать сообщение slug вместо идентификатора сообщения.

Я не уверен, как мне это сделать.Я знаком с lookup_fields, но я не уверен, как применять их для соответствия ForeignKey.

1 Ответ

0 голосов
/ 09 февраля 2019

Вы можете использовать SlugRelatedField in CommentCreateSerializer, чтобы использовать slug вместо pk при передаче значения post в запросе на создание комментария, например так:

class CommentCreateSerializer(ModelSerializer):
    post = serializers.SlugRelatedField(
        queryset=Posts.objects.all(), slug_field='slug'
    )

    class Meta:
        model = Comments
        fields = [
            'content',
            'post'
        ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...