【发布时间】:2021-10-10 00:02:22
【问题描述】:
我想为我的闪存卡创建一个搜索栏,我想过滤,这是我的 views.py 文件夹,但我编写的代码不起作用。
我的数据库中有单词卡(用于外语记忆的闪存卡)。我希望能够专门在这些卡片中进行搜索,我希望出现属于我在输入中输入的单词的卡片。
这是我在我的 html 页面中的搜索输入:
<div class="input-group">
<div class="form-outline">
<input type="text" name="search" class="form-control" />
<label class="form-label">Search</label>
</div>
<button type="button" class="btn btn-primary">
<i class="fas fa-search"></i>
</button>
</div>
在这里,我尝试使用“搜索”获取输入中输入的值 过滤器中我的数据库“tr”中卡片的名称
def ingilizce(request):
if 'search' in request.GET:
search = request.GET['search']
words = english.objects.filter(tr=search)
else:
words = english.objects.all()
randomclass = random.choice(
['bg-success', 'bg-primary', 'bg-dark', 'bg-warning', 'bg-primary'])
paginator = Paginator(words, 6)
page_number = request.GET.get('page', 1)
try:
page = paginator.page((page_number))
except:
page = paginator.page(1)
return render(request, 'english.html', {'words': page, 'randomclass': randomclass})
这是我的models.py
from django.db import models
class english(models.Model):
tr = models.CharField(max_length=50, verbose_name="tr")
ing = models.CharField(max_length=50, verbose_name="ing")
def __str__(self):
return self.tr
urls.py
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('english', views.ingilizce, name='english'),
path('addWord', views.addWord, name='add'),
path('deleteWord/<int:id>', views.deleteWord, name='deleteWord'),
]
【问题讨论】:
-
嘿@ced3j 不工作是什么意思?你有错误信息吗?您能否举例说明数据库中的内容以及您期望获得的内容?
-
尝试
search = request.GET.get('search', None)然后if search: ... else: ... -
我试图更具描述性
-
停止服务器并进入控制台:
./manage.py shell并导入英文模型:from .models import english。使用过滤器进行查询。words = english.objects.filter(tr__icontains='test')...结果如何? -
如果您展示模型会有所帮助...在您看来我也想打印
search并在那里确认它