DRF lookup field serializer

Взял модель из документации Drf в качестве примера.

Я пытаюсь выполнить вывод данных из более чем двух модолей ( в случае с примером только 2) так что бы после, указать параметры для url

Models.py

class Album(models.Model):
    album_name = models.CharField(max_length=100)
    artist = models.CharField(max_length=100)

class Track(models.Model):
    album = models.ForeignKey(Album, related_name='tracks', on_delete=models.CASCADE)
    order = models.IntegerField()
    title = models.CharField(max_length=100)
    duration = models.IntegerField()

Serializers.py

class TrackSerializer(serializers.ModelSerializer):
    class Meta:
        model = Track
        fields = ['order', 'title', 'duration']

class AlbumSerializer(serializers.ModelSerializer):
    tracks = TrackSerializer(many=True, read_only=True)

    class Meta:
        model = Album
        fields = ['album_name', 'artist', 'tracks']

View.py

class ListAlbumTracksView(generics.ListAPIView):
    authentication_classes = [SessionAuthentication]
    permission_classes = [IsAuthenticated]
    serializer_class = AlbumSerializer

def get_queryset(self):
    obj = Album.objects.filter(album_name=self.kwargs.get('album_name'), tracks__order=self.kwargs.get('order')
    return obj

url.py

path('album/<album_name>/<order>/', ListAlbumTracksView.as_view(), name='allow_albumTrack'),

И когда я делаю запрос фильтр tracks__order не работает. хотя если я указываю другое поле, django выдаёт что можно использовать его как поле, но когда я его использую, данных нет.

Подскажите, в чём может быть ошибка ? или как сделать ограничение по таблице track


Ответы (0 шт):