【发布时间】:2019-03-12 12:45:45
【问题描述】:
我是 django 的超级新手。我正在尝试创建一个 pastebin.com 的克隆,它只有一个模型(帖子),其中包含 name 、 content 和 generated_url。
我的搜索栏有问题。我不知道如何将 SearchView 实现到生成的 search.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})
这是我的搜索栏的 root.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>
这里是 searchview 的 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 python-3.x django-models django-rest-framework django-templates