Выбор фильтра DRF по имени группы - PullRequest
0 голосов
/ 26 января 2020

Допустим, я делаю модель библиотеки мультимедиа, и в именованных группах есть следующие варианты:

models.py

class MediaLibrary(models.Model):
    MEDIA_CHOICES = [
        ('Audio', (
                ('vinyl', 'Vinyl'),
                ('cd', 'CD'),
            )
        ),
        ('Video', (
                ('vhs', 'VHS Tape'),
                ('dvd', 'DVD'),
            )
        )
    ]
    media_type = models.CharField(max_length=50, choices=Media_Choices)

Если я сделаю запрос через DRF, он будет возвращать все объекты, которые соответствуют либо «Аудио» и «Видео».

Как я могу отфильтровать запрос так, чтобы он возвращал только объекты из группы «Аудио». (Или группа «Видео».)

1 Ответ

0 голосов
/ 26 января 2020

создайте модель менеджера и выполните фильтрацию следующим образом

class MediaManager(models.Manager):

    def video_items(self):
        return self.get_queryset().filter(media_type='Video')

       ---your models here--
       objects = MediaManager()

, затем вы можете вызвать ваши представления как MediaLibrary.objects.video_items(), аналогично filer audio.

...