对于用户个人,可以通过文集来收集分类整理文章。对于整个网站,作者可以讲文章发布到不同的专题。如果作者是专题管理员,那么可以直接发布;如果作者不是管理员,则需要审核通过后才能发布到专题中。
用户发布文章后,将会自动跳转至专题投稿页面。
数据准备
在 models.py
中创建文章投稿记录的模型,代码:
1 | class ArticlePost(BaseModel): |
数据迁移
1 | python manage.py makemigrations |
把专题相关模型注册到 adminx.py 文件。
终端进入 MySQL 数据库,添加专题的测试数据:
1 | # 专题测试数据 |
专题收录文章页面
服务端提供我管理的专题列表,视图接口代码:
1 | class MySpecialListAPIView(ListAPIView): |
序列化器,代码:
1 | class SpecialModelSerializer(serializers.ModelSerializer): |
路由,代码:
1 | urlpatterns = [ |
修改发布文章以后的跳转页面代码,并修改路由中原来的Writed的路由地址。客户顿实现发布文章以后的投稿页面
1 | <template> |
前端指定路由,代码:
1 | import Vue from 'vue' |
实现专题收录文章的功能
修改发布文章以后的跳转页面代码,并修改路由中原来的 Writed 的路由地址
Write.vue
组件中发布文章以后跳转到投稿页面,代码:
1 | publish_article(is_public) { |
router/index.js
代码:
1 | import Vue from 'vue' |
服务端提供收录文章到我管理的专题中的视图接口:
1 | class ArticlePostAPIView(CreateAPIView): |
序列化器:
1 | class ArticlePostModelSerializer(serializers.ModelSerializer): |
urls.py
路由:
1 | urlpatterns = [ |
前端发送 ajax,请求投稿,代码:
1 | article_post (key) { |
在专题列表中展示当前文章的收录状态
视图代码:
1 | class MySpecialListAPIView(ListAPIView): |
前端组件中在原有代码中增加is_post的判断显示
1 | <template> |