Я хочу иметь как публичный, так и частный доступ к /api/listings, чтобы я мог иметь доступ только для чтения в своем интерфейсе ко всем общедоступным спискам. Я также хочу читать, обновлять и удалять собственные списки для аутентифицированного пользователя, что я уже знаю, как это делать (закомментировано, я знаю, что мне нужно изменить разрешение на AllowAuthenticated). Нужно ли мне создавать второй API и как я могу это сделать, поскольку общедоступный API уже использует /api/listings URI, спасибо
# api.py
class ListingViewSet(viewsets.ModelViewSet):
permission_classes = [
permissions.AllowAny,
]
serializer_class = ListingSerializer
# This is how I can publicly access the api
queryset = Listing.objects.all()
# This is how I can have private access
# def get_queryset(self):
# return self.request.user.listings.all()
# def perform_create(self, serializer):
# serializer.save(owner=self.request.user)
# serializers.py
class ListingSerializer(serializers.ModelSerializer):
class Meta:
model = Listing
fields = '__all__'
Я думаю, это то, что я ищу, спасибо!





У вас есть разрешение
IsAuthenticatedOrReadOnlyпо умолчанию, которое дает разные разрешения в зависимости от типа чтения, которые могут вам помочь: django-rest-framework.org/api-guide/разрешения