zoukankan      html  css  js  c++  java
  • Django 创建model的一些注意事项

    自增主键字段

    默认情况下,Django 会给每个模型添加下面这个字段:

    id = models.AutoField(primary_key=True)
    

    这是一个自增主键字段。

    如果你想指定一个自定义主键字段,只要在某个字段上指定primary_key=True 即可。如果 Django 看到你显式地设置了 Field.primary_key,就不会自动添加 id 列。

    每个模型只能有一个字段指定primary_key=True(无论是显式声明还是自动添加)。

    字段的自述名

    ForeignKeyManyToManyField 和 OneToOneField 之外,每个字段类型都接受一个可选的位置参数 —— 字段的自述名。

    如果没有给定自述名,Django 将根据字段的属性名称自动创建自述名 —— 将属性名称的下划线替换成空格。

    在这个例子中,自述名是 "person's first name":

    first_name = models.CharField("person's first name", max_length=30)

     

    在这个例子中,自述名是  "first name"

    first_name = models.CharField(max_length=30)


    ##########

    first_name models.CharField("person's first name"max_length=30)   -->第一个参数可创建字段的自述名

    first_name models.CharField(max_length=30)               -->若没有创建字段的自述名, Django 将根据字段的属性名称自动创建自述名—— 将属性名称的下划线替换成空格。

    first_name 是字段的属性名。

    ##########

    下面是几个特例,特例的原因是在于这些字段的第一参数是模型,而不是参数,需要使用verbose_name关键字参数来指定自述名。

    ForeignKeyManyToManyField 和 OneToOneField 都要求第一个参数是一个模型类,所以要使用verbose_name 关键字参数才能指定自述名:

    poll = models.ForeignKey(Poll, verbose_name="the related poll")
    sites = models.ManyToManyField(Site, verbose_name="list of sites")
    place = models.OneToOneField(Place, verbose_name="related place")
    

    习惯上,verbose_name 的首字母不用大写。Django 在必要的时候会自动大写首字母。

  • 相关阅读:
    mysql的sql性能分析器
    Maven(一)
    SVN使用(二)
    SVN使用(一)
    php smarty section使用
    php smarty foreach循环注意
    PHP unlink() 函数
    PHP file_exists() 函数
    PHP realpath() 函数
    PHP dirname() 函数
  • 原文地址:https://www.cnblogs.com/haoshine/p/5444824.html
Copyright © 2011-2022 走看看