0
我想實現我的應用程序搜索功能,但我有它的調用類型錯誤。我加入這個錯誤Django的搜索功能問題
views.py
from django.shortcuts import render
from .models import Games,Game_detail,Order
from django.shortcuts import render,get_object_or_404,redirect
from django.views.generic import ListView,DetailView,CreateView
from django.db.models import Q
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
class IndexView(ListView):
template_name ='games/list.html'
context_object_name = 'all_games'
model = Games
def get_queryset(self,request):
query = request.GET.get("q")
if query:
queryset_list = queryset_list.filter(
Q(name__icontains=query)|
Q(platform__icontains=query)|
Q(genre__icontains=query) |
Q(language__icontains=query)
).distinct()
return Games.objects.all()
列表的畫面的錯誤。 HTML
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity=" sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<title>Page Title</title>
</head>
<body>
</body>
</html>
<form method='GET' action=''>
<input type='text' name='q' placeholder='Wyszukaj' value='{{ request.GET.q }}'/>
<input type='submit'class="btn btn-default" value='Szukaj' />
</form>
<table class="table table-striped">
<thead>
<tr>
<th>Nazwa</th>
</th></th>
<th>Platforma</th>
<th>Gatunek</th>
<th>Język</th>
</tr>
</thead>
<tbody>
{% for obj in object_list%}
<tr>
<td><a href ='{%url "detail" pk=obj.pk%}'>{{obj.name}}</a></td>
<td>{{obj.platform}}</td>
<td>{{obj.genre}}</td>
<td>{{obj.language}}</td>
</tr>
{% endfor %}
</tbody>
</table>
Model.py
from django.db import models
class Games(models.Model):
name = models.CharField(max_length=250)
platform = models.CharField(max_length=500)
genre = models.CharField(max_length=100)
language = models.CharField(max_length=100)
image = models.ImageField(upload_to='Images_game',default='')
# def __str__ (self):
# return self.Name
class Game_detail(models.Model):
game = models.ForeignKey(Games,on_delete=models.CASCADE)
subcryption = models.TextField()
publisher = models.CharField(max_length=250)
date_of_publish = models.DateField()
class Order(models.Model):
person_name = models.CharField(max_length=24)
person_surname = models.CharField(max_length=24)
street = models.CharField(max_length=45)
city= models.CharField(max_length=45)
我想寫這個4值的搜索。我想問題依賴於返回函數可能是錯誤的。
就解決queryset_list問題的Django文檔中的詳細信息 - 我可以刪除我的答案。或者它最終會看起來一樣:) – karthikr
很好的接收!謝謝 –
和縮進。 – karthikr