我希望创建一个搜索类,以便在将标题输入到表单中时可以找到电影,但是还希望在将标题和年份也输入到表单中时找到该电影。
这是view.py,我有atm,可以根据标题查找电影,但是一旦在末尾加上年份,就找不到它。
from django.shortcuts import render
from django.views.generic import TemplateView, ListView, DetailView
from .models import Movie
from django.db.models import Q
class HomePageView(TemplateView):
template_name = 'movies/front_page.html'
class SearchResultsView(ListView):
model = Movie
template_name = 'movies/search_results.html'
context_object_name = 'search_all_movies'
def get_queryset(self):
query = self.request.GET.get('q')
return Movie.objects.filter(Q(title__icontains=query)
更新-我已经对此进行了编码,但仍然无法正常工作?
'''
def get_queryset(self):
query = self.request.GET.get('q')
title = ''.join(query.split(' ')[-1:])
year = ''.join(query.split(' ')[-1])
if year.startswith('19') | year.startswith('20'):
return Movie.objects.filter(title__icontains=title)
else:
return Movie.objects.filter(title__icontains=query)
'''
更新-
'''
title = ''.join(query.split(' ')[-1:])
'''
是错误的。我不得不将[-1:]更改为[:-1],现在可以正常使用了。对于任何有兴趣的人都来关注这个帖子。谢谢大家。