diff --git a/myblog/blog/admin.py b/myblog/blog/admin.py index f55cc49..590a9cf 100644 --- a/myblog/blog/admin.py +++ b/myblog/blog/admin.py @@ -1,6 +1,24 @@ from django.contrib import admin from .models import Post +from django.db import models +from martor.widgets import AdminMartorWidget -# Register your models here. -admin.site.register(Post) +class PostAdmin(admin.ModelAdmin): + # 使用Martor Markdown编辑器替换默认的Textarea + formfield_overrides = { + models.TextField: {'widget': AdminMartorWidget}, + } + + # 设置列表显示字段 + list_display = ('title', 'publish_date', 'created_at') + # 设置搜索字段 + search_fields = ('title', 'content') + # 设置日期层级过滤器 + date_hierarchy = 'publish_date' + # 设置可编辑字段 + list_editable = ('publish_date',) + + +# 注册自定义的PostAdmin +admin.site.register(Post, PostAdmin) \ No newline at end of file diff --git a/myblog/blog/models.py b/myblog/blog/models.py index 40efddc..2152b74 100644 --- a/myblog/blog/models.py +++ b/myblog/blog/models.py @@ -1,5 +1,7 @@ from django.db import models from django.utils import timezone +import markdown +from django.utils.safestring import mark_safe # Create your models here. @@ -12,4 +14,7 @@ class Post(models.Model): publish_date = models.DateTimeField(default=timezone.now) def __str__(self): - return f"{self.title} ({self.publish_date.strftime('%Y-%m-%d')})" \ No newline at end of file + return f"{self.title} ({self.publish_date.strftime('%Y-%m-%d')})" + + def get_markdown_content(self): + return mark_safe(markdown.markdown(self.content)) diff --git a/myblog/blog/templates/blog/detail.html b/myblog/blog/templates/blog/detail.html index bad1f8c..2ba4265 100644 --- a/myblog/blog/templates/blog/detail.html +++ b/myblog/blog/templates/blog/detail.html @@ -6,16 +6,16 @@
-