• Django创建模型


    1、根据创建好应用模块

    python manage.py startapp tests

     2、在models文件里创建模型

    1. from django.db import models
    2. from book.models import User
    3. # Create your models here.
    4. class Tests(models.Model):
    5. STATUS_CHOICES = (
    6. (0, '启用'),
    7. (1, '停用'),
    8. # 更多状态...
    9. )
    10. add_time = models.DateTimeField(auto_now_add=True, verbose_name='添加时间')
    11. update_time = models.DateTimeField(auto_now=True, verbose_name='更改时间')
    12. status = models.BooleanField(choices=STATUS_CHOICES, default=0, verbose_name='状态')
    13. name = models.CharField(max_length=100, verbose_name='标题')
    14. content = models.TextField(verbose_name='内容')
    15. # 会自动创建author_id字段 这是处于同一个app模块下面 null=True 允许为空
    16. # 一对多的关联
    17. author = models.ForeignKey(User, on_delete=models.CASCADE, null=True, verbose_name='作者')
    18. # def __str__(self):
    19. # return self.name # 自定义MainModel对象的字符串表示形式
    20. class Meta:
    21. verbose_name = '文章'
    22. verbose_name_plural = verbose_name
    23. # CASCADE: 当主表中的记录被删除时,从表中所有引用该主键的记录也会被自动删除。这是级联删除的概念,确保了数据库的完整性,避免了悬挂的外键
    24. # PROTECT: 当从表中存在依赖于主表的记录时,禁止删除主表中的相关记录。这可以防止意外删除会导致从表中出现悬挂外键的情况。
    25. # SET_NULL: 当主表中的记录被删除时,将从表中所有引用该主键的外键字段设置为NULL。但是,这要求外键字段允许NULL值。
    26. # SET_DEFAULT: 将外键字段设置为其默认值。这同样要求字段定义了默认值。
    27. # DO_NOTHING: 不采取任何行动,如果从表中有记录引用了要删除的主键,则会抛出一个完整性错误。
    28. #
    29. # 如果不是则需要加上app名称.模型
    30. # author = models.ForeignKey('home.User', on_delete=models.CASCADE)
    31. # 如果外键则是自身的话,self或者本身 Article
    32. # author = models.ForeignKey('self', on_delete=models.CASCADE,null=True)
    33. def to_dict(self):
    34. return {
    35. "id": self.id,
    36. "name": self.name,
    37. "content": self.content,
    38. "author": self.author.name,
    39. "author_id": self.author.id,
    40. }

    3、将创建好的模型结构,生成表

    1. #运行所有的
    2. python manage.py makemigrations
    3. python manage.py migrate
    4. #运行应用模块
    5. python manage.py makemigrations tests
    6. python manage.py migrate tests

    如果报这个错了,那就意味着需要在配置文件里注册你的应用模块 

     


    再次运行该命令,则会在迁移目录下生成文件

     运行命令,将迁移文件,生成表

    python manage.py migrate tests
  • 相关阅读:
    【提高效率】C++使用map替代传统switch case
    市场饱和,你得抓住Android初级开发破局关键点---Framework
    基于 Spring Boot 博客系统开发(一)
    组合问题解析
    Python编程 字符串的方法
    【R语言文本挖掘】:主题模型(LDA)
    java获取jenkins发布版本信息
    【网络安全】2023年堡垒机品牌大全
    教资笔记(目录)
    Collction的List方法,list特有方法,遍历方式,迭代器选择
  • 原文地址:https://blog.csdn.net/u010373106/article/details/142155677