Как создать функцию 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)