如何将我的类视图实现到我的模板 html 以进行搜索行为?



我对django超级陌生。我正在尝试创建一个 pastebin.com 克隆,该克隆只有一个模型(帖子(,其中包含名称,内容和generated_url。
我的搜索栏有问题。我不知道如何将搜索视图实现到搜索中.html从而生成

这是我的模型

from django.db import models
from django.urls import reverse
# Create your models here.
class Post(models.Model):
name = models.CharField(db_index=True, max_length=300, blank=False)
content = models.TextField()
generated_url = models.CharField(db_index=True, max_length=10, blank=False)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse("pastebin_app:detail",kwargs={'pk':self.pk})

这是我的根.html搜索栏

<form action="{% url 'pastebin_app:search' %}" method="get" accept-charset="utf-8">
<input name="q" type="text" placeholder="Search">
<input type="submit" value="Search"/>
</form>

这是搜索视图的 views.py

class SearchView(ListView):
template_name = 'pastebin_app/search.html'
model = models.Post
def get(self, request, *args, **kwargs):
q = request.GET.get('q', '')
self.results = models.Post.objects.filter(name__icontains=q)
return super().get(request, *args, **kwargs)
def get_context_data(self, **kwargs):
return super().get_context_data(results=self.results, **kwargs)

有人可以帮我创建从 SearchView 生成搜索结果的 show.html 模板吗?

你需要签出 django-filter 包含一个简单的 api,帮助你设置过滤对象以及如何处理复杂的过滤器。

def product_list(request):
f = ProductFilter(request.GET, queryset=Product.objects.all())
return render(request, 'my_app/template.html', {'filter': f})

最新更新