Django поиск человекочитаемых значений

Я пытаюсь написать запрос, который ищет человекочитаемые значения в списке опций.

class Book(models.Model):
   title = models.CharField(max_length=256)
   authors = models.CharField(max_length=256, default=None)
   GENRE = [
       ('0', 'None'),
       ('1', 'Action-Adventure'),
       ('2', 'Autobigraphy'),
       ('3', 'Biography'),
       ('4', 'Classic'),
       ('5', 'Drama'),
       ('6', 'Fantasy'),
       ('7', 'Fiction'),
       ('8', 'Historical'),
       ('9', 'Mystery'),
       ('10', 'Non-Fiction'),
       ('11', 'Romance'),
       ('12', 'Science-Fiction'),
   ]
   genre = models.CharField(max_length=2, choices=GENRE, default='0')
   book_cover = models.ImageField(upload_to='covers/', default=None)
   description = models.TextField(default=None)
   added_by = models.CharField(max_length=256, default=None)
   date_added = models.DateTimeField(default=timezone.now)

   def __str__(self):
       return self.title

и вот мой вид поиска.

def search_books(request):
    if request.method == 'GET':
        query = request.GET.get('q')
        submitbutton= request.GET.get('submit')
        if query is not None:
            lookups = Q(title__icontains=query) | Q(authors__icontains=query) | Q(genre__icontains=query) | Q(added_by__icontains=query)
            results = Book.objects.filter(lookups).distinct()
            context = {'book_list': results,
                     'submitbutton': submitbutton}
            return render(request, 'books/book_list.html', context)
        else:
            return render(request, 'books/book_list.html')
    else:
        return render(request, 'books/book_list.html')

Есть ли способ поиска значений жанра, таких как 'Action-Adventure', вместо числового значения?

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