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', вместо числового значения?