【发布时间】:2021-08-19 14:51:12
【问题描述】:
我有一个具有以下型号的 django 应用程序。
class Posts(models.Model):
post = models.TextField(max_length=1500)
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
likes = models.ManyToManyField(User, related_name="post_likes")
category = models.CharField(max_length=50, default=None)
为了允许用户搜索特定博客然后显示这些对象,我有以下视图。
def index(request):
if request.method == "GET":
search = request.GET.get("input")
posts = Posts.objects.filter(category__icontains=f"{search}")
else:
posts = Posts.objects.all()
params = {'blog': posts}
return render(request, 'index.html', params)
在上面的视图中,变量search 包含用户搜索的内容,我通过表单接收到的内容。
但我还想在用户搜索博客后提供排序功能。就像用户搜索"recipes" 一样,我需要向他们展示所有搜索结果,然后让他根据likes 和recent 等对它们进行排序。我该怎么做,因为我在显示之后就丢失了搜索词结果。
【问题讨论】:
标签: python-3.x django django-models django-views django-templates