首页 > 其他分享 >django模型层之models入门篇(filed options)

django模型层之models入门篇(filed options)

时间:2022-12-20 13:23:02浏览次数:48  
标签:verbose models max self django 入门篇 length name

一、新建一个django项目,注册两个app分别为 tournament、comment,其中models的代码分别为:

# tournament/models.py
from django.db import models

class Club(models.Model):
    region_choices = [
        ('E', 'East'),
        ('W', 'West'),
    ]
    name = models.CharField(max_length=50)
    region = models.CharField(max_length=20, choices=region_choices)
    desc = models.TextField(max_length=1000, null=True, blank=True)

    class Meta:
        verbose_name = "俱乐部"
        verbose_name_plural =verbose_name

    def __str__(self):
        return self.name

class Player(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()
    club = models.ForeignKey(Club, on_delete=models.CASCADE, null=True)
    salary = models.CharField(max_length=30)
    desc = models.TextField(max_length=1000)

    class Meta:
        verbose_name = "球员"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

class News(models.Model):
    title = models.CharField(max_length=150)
    content = models.TextField(max_length=2000)
    players = models.ManyToManyField(Player)
    create_time = models.DateTimeField()
    comment = models.ForeignKey('comment.Comment', on_delete=models.CASCADE)

    class Meta:
        verbose_name = "新闻"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.title

 

# comment/models.py
from django.db import models

class Comment(models.Model):
    content = models.CharField(max_length=200)
    create_time = models.DateTimeField()
    sub_content = models.ForeignKey('self', on_delete=models.CASCADE)
    
    class Meta:
        verbose_name = "评论"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.content

 

二、filed options 即字段的一些参数设置

  1. null = True,默认的null为False。这是针对数据库层面而言的,上面的club表:

  

 

  可以看到,前面几列,创建model实例的时候,没有传desc字段时候,表中会默认存个NULL。

 

  

 

 

 

  2. blank=True,一般表示前端输入时是否可以为空,默认为False。还是以上面的club的创建实例为例,可以看到,除了desc外,其他的的必须为空:

  

 

 

   

  3. db_column 可以指定生成表的列名

 

  4. help_text 可以指定表单中的辅助性说明文字

标签:verbose,models,max,self,django,入门篇,length,name
From: https://www.cnblogs.com/m-chen/p/16993975.html

相关文章

  • django框架(七)
    (3)Q查询进阶操作研究查询条件的左边是什么?字段名还是变量名?models.Book.objects.filter(pk=1)发现是变量名如果想让左边不是变量名而是字段名,则需要用到Q查询Q:还可......
  • Django之Ajax
    什么是Ajax?ajax全名:asyncjavascriptandXML(异步JavaScript和XML)是前后台交互的能⼒,也就是我们客户端给服务端发送消息的⼯具,以及接受响应的⼯具AJAX不是新......
  • Django7-8
    聚合查询聚合函数:max、min、sum、avg、count1.使用聚合函数之前需要导入模块fromdjango.db.modelsimportMax,Min,Sum,Avg,Count2.聚合函数的使用聚合函数通常......
  • Django-Ajax
    1.Ajax1.AJAX不是新的编程语言,而是一种使用现有标准的新方法,我们目前学习的是jQuery版本。2.AJAX最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并......
  • Django与Ajax
    Ajaxajax不是一门新的技术并且有很多版本,我们目前学习的是jquery版Ajax简介Ajax即AsynchronousJavascriptAndXML也就是异步JavaScript和XML异步:和同步对应Jav......
  • django之Q查询进阶、ORM查询优化、ORM事务、ORM常用字段类型和字段参数、Ajax介绍、数
    一、Q查询进阶操作这里主要就是让查询数据的时候,可以使用input获取的信息,进行用户交互。fromdjango.db.modelsimportQq_obj=Q()#1.产生q对象q_obj.connector=......
  • 进入python的世界_day55_Django—ORM进阶操作、ORM事务、Ajax
    一、ORM进阶操作1.Q查询进阶Q查询还可以将查询的字段改为字符串形式q_obj=Q()q_obj.connector='or'#q对象默认是多个条件也是and关系可以修改为orq_obj.child......
  • django 08 orm查询相关3
    Q查询进阶importosdefmain():os.environ.setdefault('DJANGO_SETTINGS_MODULE','djangoday07.settings')importdjangodjango.setup()fromapp......
  • django框架(部分讲解)
    Q查询进阶操作这里主要就是让查询数据的时候,可以使用input获取的信息,进行用户交互fromdjango.db.modelsimportQq_obj=Q()#1.产生q对象q_obj.connector='or'......
  • django ORM查询优化,事务,ajax
    ORM查询优化,事务,ajax内容概要Q查询进阶操作ORM查询优化ORM事务操作ORM常用字段类型ORM常用字段参数ORM三种创建多对多的方式Ajax请求内容详细Q查询进阶操作,默......