Как применить несколько фильтров на моем сайте
ВОТ МОЙ HTML КОД
ВОТ МОЙ КОД VIEWS.PY
def index(request):
cities = City.objects.all()
return render(request,"screen/index.html",{
'cities' :cities
})
def get_cities(request):
cities = City.objects.all().values('name')
return JsonResponse(list(cities), safe=False)
def get_movies(request, city):
current_site = get_current_site(request)
selected_city = get_object_or_404(City, name=city)
movies = selected_city.movie.all().values('name', 'image')
absolute_media_url = f"{request.scheme}://{current_site}{settings.MEDIA_URL}"
for movie in movies:
movie['image'] = f"{absolute_media_url}{movie['image']}"
return JsonResponse(list(movies), safe=False)
def get_movies_by_age_rating(request, city, age_rating):
current_site = get_current_site(request)
selected_city = get_object_or_404(City, name=city)
movies = Movie.objects.filter(city=selected_city, adult_or_underaged__certificate=age_rating).values('name', 'image')
absolute_media_url = f"{request.scheme}://{current_site}{settings.MEDIA_URL}"
for movie in movies:
movie['image'] = f"{absolute_media_url}{movie['image']}"
return JsonResponse(list(movies), safe=False)
def get_movies_by_language(request, city, language):
current_site = get_current_site(request)
selected_city = get_object_or_404(City, name=city)
movies = Movie.objects.filter(city=selected_city, language__lanName=language).values('name', 'image')
absolute_media_url = f"{request.scheme}://{current_site}{settings.MEDIA_URL}"
for movie in movies:
movie['image'] = f"{absolute_media_url}{movie['image']}"
return JsonResponse(list(movies), safe=False)
ВОТ МОЙ КОД MODELS.PY
class Language(models.Model):
lanName=models.CharField(max_length=50)
def __str__(self):
return self.lanName
class Aged(models.Model):
certificate=models.CharField(max_length=50)
def __str__(self):
return self.certificate
class Movie(models.Model):
name = models.CharField(max_length=200)
image = models.ImageField(upload_to='movies/')
description = models.TextField()
cast = models.ManyToManyField(Actor)
language = models.ForeignKey(Language, on_delete=models.CASCADE)
adult_or_underaged = models.ForeignKey(Aged, on_delete=models.CASCADE)
def __str__(self):
return self.name
class City(models.Model):
name = models.CharField(max_length=100)
movie = models.ManyToManyField(Movie, blank=True)
def __str__(self):
return self.name
ВОТ МОЙ КОД URLS.PY
urlpatterns = [
path('',views.index,name="index"),
path('get_cities/', views.get_cities, name='get_cities'),
path('get_movies/<str:city>/', views.get_movies, name='get_movies'),
path('get_movies_by_age_rating/<str:city>/<str:age_rating>/', views.get_movies_by_age_rating, name='get_movies_by_age_rating'),
path('get_movies_by_language/<str:city>/<str:language>/', views.get_movies_by_language, name='get_movies_by_language'),
]
# Serve uploaded media files during development
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Так что я хочу, чтобы когда пользователь нажимает на кнопку UA он показывает отфильтрованные фильмы, которые являются UA и с этим пользователь нажимает кнопку HINDI или H , то он должен показать фильмы, которые следуют обоим условиям, и когда пользователь снова нажмите на хинди фильтр удаляется и только Показать UA и когда пользователь снова нажмите на кнопку UA все фильтры удаляются и поиск фильмов функция должна работать, и если пользователь нажмет на язык английский он покажет английские фильмы и затем если пользователь нажмет на UA тогда он покажет оба условия выполняя фильмы , так что я хочу добавить эту функцию где пользователь и добавить несколько фильтров пожалуйста любая помощь мне как я должен сделать это так может пожалуйста предоставить мне код ? вот как выглядит моя страница