first commit

main
谢英豪 9 months ago
parent f1113b0a4d
commit a5d55d1f6b

@ -111,13 +111,13 @@ AUTH_PASSWORD_VALIDATORS = [
# Internationalization
# https://docs.djangoproject.com/en/5.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_TZ = True
USE_TZ = False
# Static files (CSS, JavaScript, Images)

@ -1,3 +1,4 @@
from django.contrib import admin
# Register your models here.
# Register your models here.

@ -1,3 +1,21 @@
from django.contrib import admin
# Register your models here.
from .models import BlogCategory, Blog, BlogComment
class BlogCategoryAdmin(admin.ModelAdmin):
list_display = ['name']
class BlogAdmin(admin.ModelAdmin):
list_display = ('title', 'content', 'pub_time', 'category', 'author')
class BlogCommentAdmin(admin.ModelAdmin):
list_display = ('content', 'pub_time', 'author', 'blog')
admin.site.register(BlogCategory, BlogCategoryAdmin)
admin.site.register(Blog, BlogAdmin)
admin.site.register(BlogComment, BlogCommentAdmin)

@ -0,0 +1,6 @@
from django import forms
class PubBlogForm(forms.form):
title = forms.CharField(max_length=200, min_length=2)
content = forms.CharField(min_length=2)
category = forms.ImageField()

@ -6,6 +6,14 @@ User = get_user_model()
class BlogCategory(models.Model):
name = models.CharField(max_length=200, verbose_name='分类名称')
def __str__(self):
return self.name
class Meta:
verbose_name ='分类'
verbose_name_plural = verbose_name
class Blog(models.Model):
title = models.CharField(max_length=200, verbose_name='标题')
content = models.TextField(verbose_name='内容')
@ -13,11 +21,27 @@ class Blog(models.Model):
category = models.ForeignKey(BlogCategory, on_delete=models.CASCADE, verbose_name='分类')
author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='作者')
def __str__(self):
return self.title
class Meta:
verbose_name ='帖子'
verbose_name_plural = verbose_name
class BlogComment(models.Model):
content = models.TextField(verbose_name='内容')
pub_time = models.DateTimeField(auto_now_add=True, verbose_name='发布时间')
blog = models.ForeignKey(Blog, on_delete=models.CASCADE, related_name='comments', verbose_name='所属博客')
blog = models.ForeignKey(Blog, on_delete=models.CASCADE, related_name='comments', verbose_name='所属帖子')
author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='作者')
def __str__(self):
return self.content
class Meta:
verbose_name ='评论'
verbose_name_plural = verbose_name

@ -1,6 +1,11 @@
from django.shortcuts import render
from django.http import JsonResponse
from django.urls.base import reverse_lazy
from django.contrib.auth.decorators import login_required
from django.views.decorators.http import require_http_methods
from .models import BlogCategory, Blog, BlogComment
from .forms import PubBlogForm
# Create your views here.
def index(request):
return render(request, 'index.html')
@ -8,6 +13,18 @@ def index(request):
def blog_detail(request, blog_id):
return render(request,'blog_detail.html')
@require_http_methods(['GET','POST'])
@login_required()
def pub_blog(request):
return render(request,'pub_blog.html')
if request.method == 'GET':
categories = BlogCategory.objects.all()
return render(request,'pub_blog.html', context={"categories": categories})
else:
form = PubBlogForm(request.POST)
if form.is_valid():
title = form.cleaned_data.get('title')
content = form.cleaned_data.get('content')
category_id = form.cleaned_data.get('category')
Blog.objects.create(title=title, content=content, category_id=category_id, author=request.user)
return JsonResponse({"code":200, "message":"参数错误!"})

@ -33,11 +33,8 @@
<div class="mb-3">
<label class="form-label">分类</label>"
<select name="category" class="form-select">
<option value="1">校园事件</option>
<option value="2">课题讨论</option>
<option value="3">生活分享</option>
<option value="4">失物招领</option>
<option value="5">CPDD</option>
</select>
</div>
<div class="mb-3">

Loading…
Cancel
Save