From c8970dc447399904244f0d3c234285e5a811531ece6e348485c0189c1f0bfd34 Mon Sep 17 00:00:00 2001 From: yuangyaa Date: Sun, 27 Jul 2025 22:21:29 +0800 Subject: [PATCH] Add Category && Change webview theme --- myblog/blog/admin.py | 3 +- myblog/blog/migrations/0006_category.py | 25 ++ myblog/blog/migrations/0007_post_category.py | 19 ++ myblog/blog/models.py | 17 +- myblog/blog/templates/blog/detail.html | 238 +++++++++++++++---- myblog/blog/templates/blog/index.html | 204 +++++++++++++++- myblog/blog/views.py | 50 +++- 7 files changed, 489 insertions(+), 67 deletions(-) create mode 100644 myblog/blog/migrations/0006_category.py create mode 100644 myblog/blog/migrations/0007_post_category.py diff --git a/myblog/blog/admin.py b/myblog/blog/admin.py index 6bf1c84..b5e8f60 100644 --- a/myblog/blog/admin.py +++ b/myblog/blog/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from .models import Post +from .models import Post, Category from django.db import models from mdeditor.widgets import MDEditorWidget @@ -18,3 +18,4 @@ class PostAdmin(admin.ModelAdmin): # 注册自定义的PostAdmin admin.site.register(Post, PostAdmin) +admin.site.register(Category) \ No newline at end of file diff --git a/myblog/blog/migrations/0006_category.py b/myblog/blog/migrations/0006_category.py new file mode 100644 index 0000000..b7b4216 --- /dev/null +++ b/myblog/blog/migrations/0006_category.py @@ -0,0 +1,25 @@ +# Generated by Django 5.1 on 2025-07-27 13:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('blog', '0005_remove_post_image'), + ] + + operations = [ + migrations.CreateModel( + name='Category', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, unique=True)), + ('description', models.TextField(blank=True, null=True)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ], + options={ + 'verbose_name_plural': 'Categories', + }, + ), + ] diff --git a/myblog/blog/migrations/0007_post_category.py b/myblog/blog/migrations/0007_post_category.py new file mode 100644 index 0000000..4c236ff --- /dev/null +++ b/myblog/blog/migrations/0007_post_category.py @@ -0,0 +1,19 @@ +# Generated by Django 5.1 on 2025-07-27 13:32 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('blog', '0006_category'), + ] + + operations = [ + migrations.AddField( + model_name='post', + name='category', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='posts', to='blog.category'), + ), + ] diff --git a/myblog/blog/models.py b/myblog/blog/models.py index 02be824..88ba4de 100644 --- a/myblog/blog/models.py +++ b/myblog/blog/models.py @@ -6,12 +6,27 @@ from django.utils.safestring import mark_safe from mdeditor.fields import MDTextField +# 添加 Category 模型 +class Category(models.Model): + name = models.CharField(max_length=100, unique=True) + description = models.TextField(blank=True, null=True) + created_at = models.DateTimeField(auto_now_add=True) + + def __str__(self): + return self.name + + class Meta: + verbose_name_plural = "Categories" + + class Post(models.Model): title = models.CharField(max_length=100) content = MDTextField() # ✅ 改成这里 created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) publish_date = models.DateTimeField(default=timezone.now) + # 添加分类字段,建立外键关系 + category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True, blank=True, related_name='posts') def __str__(self): return f"{self.title}" @@ -67,4 +82,4 @@ class Post(models.Model): # 将emoji shortcode转换为实际的emoji字符 html_content = emoji.emojize(html_content, language='alias') - return mark_safe(html_content) + return mark_safe(html_content) \ No newline at end of file diff --git a/myblog/blog/templates/blog/detail.html b/myblog/blog/templates/blog/detail.html index c0cfd76..aa2796b 100644 --- a/myblog/blog/templates/blog/detail.html +++ b/myblog/blog/templates/blog/detail.html @@ -3,59 +3,199 @@ {{ post.title }} + - -
- + +

六桂流芳的com

-

{{ post.title }}

- -
-

发布时间:{{ post.publish_date|date:"Y年n月j日 H:i" }}

- 返回首页 -
- -
- -
{{ post.get_markdown_content }}
-
-
-