Как создать функцию get, которая возвращает данные, используя только id в Django?

Здесь представлен файл views.py для модели избранного. Модель избранного состоит из двух внешних ключей. Один из них связывает избранное с учетной записью пользователя, а другой - со свойством, которое пользователь выбрал. Я пытаюсь написать новую функцию get, которая возвращает все свойства, понравившиеся пользователю, используя параметр id учетной записи пользователя. Функция должна возвращать все свойства, которым отдано предпочтение с этим идентификатором учетной записи.

from .models import Favorites
from .serializers import FavoritesSerializer
from rest_framework import viewsets
from rest_framework.views import APIView
from rest_framework.response import Response

class FavoritesViewSet(viewsets.ModelViewSet):
    queryset = Favorites.objects.all()
    serializer_class = FavoritesSerializer

class FavoritesGetView(APIView):
    def get(self, request, id):
        snippet = Favorites.objects.get(id=id)
        serializer = FavoritesSerializer(snippet, many=False)
        return Response(serializer.data)

class FavoritesPropertyGet(APIView):
    def get():
        

До сих пор я пытался переписать функцию get в FavoritesGetView, но понял, что эта функция get все еще необходима. Поэтому сейчас я пытаюсь написать новую функцию get под FavoritesPropertyGet.

В соответствии с вашим требованием - all of the properties that are favorited by a user using the parameter of the user's account id, я предполагаю, что свойство id поля listing_account в модели Favorites является идентификатором учетной записи пользователя.

Неясно, как вы передаете id учетной записи пользователя в представление, поэтому я предполагаю, что пользователь вошел в систему. В Django по умолчанию текущий пользователь присутствует в переменной request.user.

При вышеуказанных предположениях, это должно помочь вам:

class FavoritesPropertyGet(APIView):
    def get(self, request):
        return Favorites.objects.filter(listing_account=request.user)

Вернуться на верх