版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QFire/article/details/82926770
用户生成内容
$ python3 manage.py startapp article
创建数据模型、表单、视图函数、前端模板和配置URL
用户和文章栏目之间是“一对多”的关系,在Django中,模型对象之间的关系可以概括为“一对一”、“一对多”和“多对多”,分别对应OneToOneField、ForeignKey、ManyToManyField
from django.db import models
from django.contrib.auth.models import User
class ArticleColumn(models.Model):
user = models.ForeignKey(User, related_name='article_column', on_delete=models.DO_NOTHING)
column = models.CharField(max_length=200)
created = models.DateField(auto_now_add=True)
def __str__(self):
return self.column
subl article/forms.py
用户后台文章管理
添加新栏目
https://docs.djangoproject.com/en/1.10/ref/models/querysets/
pip3 install awesome-slugify
MarkDown编辑器https://github.com/pandao/editor.md
$ ls static/editor/
css editormd.amd.js editormd.js examples images lib plugins src
docs editormd.amd.min.js editormd.min.js fonts languages LICENSE scss
def get_absolute_url(self):
return reverse("article:article_detail", args=[self.id, self.slug])
关于reverse函数的说明
分页Paginator类
向用户展示文章
不用登录就可查看文章
文章id不应该是数据分配的id,因为数据库搬移时id会变