Django搭建个人博客Blog-Day07

创建评论模块

基本上一个app需要做的几个套路

  1. 创建app

  1. 在配置文件中的INSTALL_APPS这个列表中写app的名字

  1. 在app中创建urls.py的路由文件,这个路由文件必须有一个叫做urlpatterns列表,django会在这个列表中查找url

  1. 在总路由文件项目根目录下的/urls.py中进行路由分发

  1. 创建app的数据模型,在app/modles.py中书写代码,继承models.Model,就可以使用django的ORM实现对数据库的操作了

  1. 加入admin的管理后天,就需要在app/admin.py中书写代码,注册

  1. 优化admin管理后天的展示,就需要在app/apps.py以及app/__init__.py书写代码

单独创建一个评论模块来实现评论功能
  1. 创建评论的App

workon wsl       # 进入虚拟环境
cd blog/blog/apps         # 切换到apps的路径之下
python ../../manage.py startapp comment        # 创建comment模块
  1. 将comment这个app加入到INSTALLED_APPS

# blog/blog/settings/dev.py
INSTALLED_APPS = [
    ...
    'comment',
]
  1. 创建commmet的路由文件,在apps/comment/路径下创建urls.py路由文件

# blog/blog/apps/comment/urls.py
from django.urls import path

from . import views

app_name = 'comment'
urlpatterns = [
    
]
  1. 在总路由文件中加入comment的url

# blog/blog/urls.py
from django.contrib import admin
from django.urls import path,include
from django.conf.urls.static import static
from django.conf import settings

from articles.views import index

urlpatterns = [
    path('',index,name='index'),
    path('admin/', admin.site.urls),
    # 进行路由分发
    path('user/',include('user.urls')),
    path('password-reset',include('password_reset.urls')),
    path('',include('articles.urls')),
    path('',include('comment.urls')),   #  新增这一条路由分发
]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

设计数据模型

  1. 在/apps/commnet/models.py文件中添加如下代码:

from django.db import models

from user.models import BaseModel,User
from articles.models import Articles


# 设计评论的数据模型  models   BaseModel   
class Comment(BaseModel): # 继承BaseModel来实现软删除
    # 评论内容
    body = models.TextField(verbose_name='评论内容')
    # 这条评论是评论哪篇文章的?   评论和文章  评论是多  文章是1   外键字段在评论表上 
    article = models.ForeignKey(Articles,on_delete=models.CASCADE)
    # 这条评论是谁写的?         评论和用户   评论是多  用户是1   外键字段在评论表上
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    
    class Meta:
        db_table = 'blog_comment'  # 自定义表名
        verbose_name = '评论'
        verbose_name_plural = verbose_name
  1. 执行数据迁移命令

python manage.py makemigrations
python manage.py migrate

将评论App加入admin后台管理

  1. 编写admin.py文件(/blog/apps/comment/admin.py)

from django.contrib import admin
from comment.models import Comment

# 编写类加入admin管理后台
class CommentAdmin(admin.ModelAdmin):
    # 展示哪些字段
    list_display = ['article','user','body','create_time']
    # 可以通过哪些字段来搜索
    # 搜索字段中用到的字段是外键字段的话  会报错,需要用__来进行跨表
    search_fields = ['body','user__username','artilce__title']
    
# 将CommentAdmin 注册进admin管理后台
# admin.site.register(数据模型类,继承了ModelAdmin的类)
admin.site.register(Comment,CommentAdmin)
  1. 对admin管理后台中的显示做一些优化

# blog/blog/apps/comment/apps.py
from django.apps import AppConfig

class CommentConfig(AppConfig):
    name = 'comment'
    verbose_name = '评论功能' # 新增这行代码 让admin管理后台显示中文
  1. 告诉Django做了这个设置

# blog/blog/apps/comment/__init__.py
default_app_config = 'comment.apps.CommentConfig'
# 配置让django的admin管理后台知道我的更改

新增评论的功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顽固油渍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值