from django.shortcuts import render, redirect, get_object_or_404 from django.http import HttpResponse from django.utils import timezone from django.core.files.storage import default_storage from django.core.paginator import Paginator from .models import File, Message from .forms import FileUploadForm, MessageForm from django.utils.timezone import timedelta def home(request): # 获取最近一周的留言 one_week_ago = timezone.now() - timedelta(days=7) messages = Message.objects.filter(created_at__gte=one_week_ago).order_by('-created_at') # 获取公开文件 files = File.objects.filter(is_public=True).order_by('-created_at') return render(request, 'main/home.html', { 'messages': messages, 'files': files }) def upload_file(request): if request.method == 'POST': form = FileUploadForm(request.POST, request.FILES) if form.is_valid(): file = form.save(commit=False) if request.user.is_authenticated: file.owner = request.user file.save() return redirect('home') else: form = FileUploadForm() return render(request, 'main/upload.html', {'form': form}) def delete_file(request, file_id): file = get_object_or_404(File, id=file_id) if request.user == file.owner: file.file.delete() file.delete() return redirect('home') def post_message(request): if request.method == 'POST': form = MessageForm(request.POST) if form.is_valid(): message = form.save(commit=False) message.ip_address = request.META.get('HTTP_X_FORWARDED_FOR', request.META.get('REMOTE_ADDR')) message.save() return redirect('home') else: form = MessageForm() return render(request, 'main/message.html', {'form': form})