gpt4 book ai didi

django - 如何通过基于类的 View 添加搜索栏

转载 作者:行者123 更新时间:2023-12-02 03:27:55 26 4
gpt4 key购买 nike

我是 django 新手,我正在尝试创建一个简单的 [pastebin.com][1] 克隆版本,该版本只有一个具有名称和内容的模型。我已经在根模板中创建了搜索栏。但是仅过滤名称并显示名称和内容列表的实际类 View 是什么? `

帕特宾评估项目

  <input class="searchfield" id="searchbox" name="q" type="text" placeholder="Search"/>

<input class="searchbutton" type="submit" value="Search"/>


</form>`

正如我已经说过的,我对 django 非常陌生。这是我的模型

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})

最佳答案

您需要创建一个 View 来处理搜索行为。没有这样的通用 View ,但创建起来很容易:

class SearchView(TemplateView):
template_name = 'search.html'

def get(self, request, *args, **kwargs):
q = request.GET.get('q', '')
self.results = 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)

将您的 View 添加到 urls.py 中:

url(r'^search/$', SearchView.as_view(), name='search')

并确保为您的搜索表单设置正确的actionmethod 属性:

<form method="GET" action="{% url 'pastebin_app:search' %}">

关于django - 如何通过基于类的 View 添加搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52688084/

26 4 0