Add Search button

This commit is contained in:
2025-08-11 23:42:14 +08:00
parent b6bbb90703
commit 958b087f54
8 changed files with 330 additions and 187 deletions

View File

@@ -1,28 +1,44 @@
from django.shortcuts import render, get_object_or_404
from django.shortcuts import render
from django.core.paginator import Paginator
from .models import Article
from .models import Article, Website
def article_list(request):
"""
显示文章列表的视图函数
"""
articles = Article.objects.all().order_by('-created_at')
paginator = Paginator(articles, 20) # 每页显示10篇文章
# 获取所有启用的网站
websites = Website.objects.filter(enabled=True)
# 获取筛选网站
selected_website = None
articles = Article.objects.all()
website_id = request.GET.get('website')
if website_id:
try:
selected_website = Website.objects.get(id=website_id)
articles = articles.filter(website=selected_website)
except Website.DoesNotExist:
pass
# 新增:处理关键词搜索
search_query = request.GET.get('q')
if search_query:
articles = articles.filter(title__icontains=search_query)
# 按创建时间倒序排列
articles = articles.order_by('-created_at')
# 分页
paginator = Paginator(articles, 10) # 每页显示10篇文章
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
return render(request, 'core/article_list.html', {
'page_obj': page_obj
'page_obj': page_obj,
'websites': websites,
'selected_website': selected_website,
# 新增:传递搜索关键词到模板
'search_query': search_query
})
def article_detail(request, article_id):
"""
显示文章详情的视图函数
"""
article = get_object_or_404(Article, id=article_id)
return render(request, 'core/article_detail.html', {
'article': article
})
article = Article.objects.get(id=article_id)
return render(request, 'core/article_detail.html', {'article': article})