如何为电影数据库创建搜索视图,该数据库可以根据标题和标题+搜索年份查找电影

时间:2019-08-22 12:46:38

标签: python django database search

我希望创建一个搜索类,以便在将标题输入到表单中时可以找到电影,但是还希望在将标题和年份也输入到表单中时找到该电影。

这是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],现在可以正常使用了。对于任何有兴趣的人都来关注这个帖子。谢谢大家。

0 个答案:

没有答案
相关问题