django中关于model的创建

创建model

from django.db import models
from django.contrib.auth.models import User
from ckeditor.fields import RichTextField

class Category(models.Model):
    category = models.CharField("分类", max_length=100)

    class Meta:
        db_table = "Category"
        verbose_name = "分类"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.category


class Article(models.Model):
    title = models.CharField("文章标题", max_length=100)
    content = RichTextField()
    author = models.ForeignKey(User, on_delete=models.CASCADE, related_name="article_author")
    post_time = models.DateTimeField("发布时间", auto_now_add=True)
    views = models.PositiveIntegerField(default=0)
    category = models.ForeignKey(Category, blank=True, null=True, on_delete=models.SET_NULL)

    class Meta:
        db_table = "Article"
        verbose_name = "文章列表"
        verbose_name_plural = "文章列表"

    def __str__(self):
        return self.title

关于Category中模型的解释

1、 models.CharField(“分类”, max_length=100) 中第一个参数的作用
在这里插入图片描述
主要是给后台看的时候方便用的
下面是不加第一个参数的效果
在这里插入图片描述
2、db_table = “Category” 参数的作用
在这里插入图片描述
如果不设置的话对应位置的名字为:article_category

3、verbose_name = “分类”
在这里插入图片描述
这个模型(Category)对应的在后台显示的名称
不设置的话,显示如下
在这里插入图片描述
4、verbose_name_plural = verbose_name
就是复数的意思,不设置的话就会在后面加一个s,不管有没有设置verbose_name = “分类”,都会在后面加一个s,中文的话就为分类s

5、def str(self): 下面是不加这个方法的效果
在这里插入图片描述
可以看到不再是之前的技术情感这两个名称了,直接就显示为对象了。

原文链接:加载失败,请重新获取