Как исключить значения многих полей из метода POST (Django Rest Framework) - PullRequest
0 голосов
/ 09 мая 2020

У меня есть проект блога, где пользователи могут публиковать, комментировать и лайкать сообщения. При отображении всех сообщений (метод ListCreateView, ie POST & GET) он отображает всех, кому понравился пост, но в методе POST (как указано на прикрепленном изображении) он предоставляет список всех пользователей в качестве вариантов, которые могут понравиться (на прикрепленной фотографии избиратели означают список зарегистрированные пользователи с проектом Blog, для тестовых целей они назвали a, b, c)

Как мне избежать голосования (я имею в виду список людей, которым нравится S Post) из CreateView?

Мои проекты работают нормально, но я хочу избежать раскрытия основных данных.

SERIALIZERS.PY

class PostSerializer(serializers.ModelSerializer):

    class Meta:
        model = Post

        fields = "__all__"

class LikeSerializer(serializers.ModelSerializer):

    class Meta:
        model = Post
        exclude = ("voters",)

MODELS.PY

class Post(models.Model):
    ...

    voters = models.ManyToManyField(settings.AUTH_USER_MODEL,
                                    related_name="votes",blank=True)

VIEWS.PY

class PostListCreateview(generics.ListCreateAPIView):
    queryset = Post.objects.all().order_by('id')
    serializer_class = PostSerializer
    permission_classes = [permissions.IsAuthenticatedOrReadOnly]
    def perform_create(self, serializer):
        serializer.save(author=self.request.user)

enter image description here

...