from django.shortcuts import render from django.core.paginator import Paginator from .models import Article, Website def article_list(request): # 获取所有启用的网站 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, 'websites': websites, 'selected_website': selected_website, # 新增:传递搜索关键词到模板 'search_query': search_query }) def article_detail(request, article_id): article = Article.objects.get(id=article_id) return render(request, 'core/article_detail.html', {'article': article})