zoukankan      html  css  js  c++  java
  • Django模型设计

    1. 访问外键值:

    book_set 就是一个 QuerySet 对象,可以过滤和切片。例如:

    
    p = Publisher.objects.get(name='Apress Publishing') p.book_set.filter(title__icontains='django')
    
    [<Book: The Django Book>, <Book: Pro Django>]
    
    

    book_set 属性是生成的:把模型名的小写形式与 _set 连在一起。

    2.访问多对多值:

    3.管理器:在 Book.objects.all() 语句中, objects 是个特殊的属性,我们通过它查询数据库。

    • 简单来说,模型的管理器是 Django 模型用于执行数据库查询的对象。一个 Django 模型至少有一个管理器,而且可以自定义管理器,定制访问数据库的方式。自定义管理器可能出于两方面的原因:添加额外的管理器方法和(或)修改管理器返回的 QuerySet 。

    字段类型

    1.models.AutoField

    2.models.BigIntegerField

    3.models.BinaryField

    4.models.BooleanField

    5.models.CharField

    6.models.CommaSeparatedIntegerField

    7.models.DateField

    8.models.DateTimeField

    9.models.DecimalField

    10.models.DurationField

    11.models.EmailField

    12.models.FileField

    13.models.FilePathField

    14.models.FloatField

    15.models.ImageField

    16.models.IntegerField

    17.models.IPAddressField

    18.models.GenericIPAddressField

    19.models.NullBooleanField

    20.models.PositiveIntegerField

    21.models.PositiveSmallIntegerField

    22.models.SlugField

    23.models.SmallIntegerField

    24.models.TextField

    25.models.TimeField

    26.models.URLField

    27.models.UUIDField

    关系字段:

    1.models.ForeignKey

    2.models.ManyToManyField

    3.models.OneToOneField

    字段选项

    1.null

    2.blank

    3.choices

    4.db_column

    5.db_index

    6.db_tablespace

    7.default

    8.editable

    9.error_messages

    10.help_text

    11.primary_key

    12.unique

    13.unique_for_date

    14.unique_for_month

    15.unique_for_year

    16.verbose_name

    17.validators

    字段的自述名

    • 除 ForeignKey 、 ManyToManyField 和 OneToOneField 之外,每个字段类型都接受一个可选的位置参数 —— 字段的自述名。如果没有给定自述名,Django 将根据字段的属性名称自动创建自述名 —— 将属性名称的下划线替换成空格。

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

    关系

    多对一

    ForeignKey 需要一个位置参数:与该模型关联的类。

    多对多

    ManyToManyField 需要一个位置参数:和该模型关联的类。

    through与中介模型(待补充)

    一对一

    OneToOneField 要一个位置参数:与模型关联的类。

    元选项

    class Meta 定义模型的元数据,模型元数据是“任何不是字段的数据”,在模型中添加 class Meta 是完全可选的,所有选项都不是必须的。

    1.abstract

    2.app_label

    3.db_table

    4.db_tablespace

    5.default_related_name

    6.get_latest_by

    7.managed

    8.order_with_respect_to

    9.ordering

    10.permissions

    11.default_permissions

    12.proxy

    13.select_on_save

    14.unique_together

    15.index_together

    16.verbose_name

    Options.verbose_name

    对象的一个易于理解的名称,为单数:

    verbose_name = "pizza"

    如果此项没有设置,Django会把类名拆分开来作为自述名,比如CamelCase 会变成camel case

    17.verbose_name_plural

    Options.verbose_name_plural

    该对象复数形式的名称:

    verbose_name_plural = "stories"

    如果此项没有设置,Django 会使用 verbose_name + "s"。

    秋来凉风起,无限思远人
  • 相关阅读:
    flex 和bison的安装和使用
    c++ map
    C++ 值传递、址传递、引用传递
    位运算
    POJ 1185 炮兵阵地 (状压DP)
    POJ 3114 Countries in War(强联通分量+Tarjan)
    Codeforces Round #262 (Div. 2) A B C
    2014多校第十场1002 || HDU 4972 A simple dynamic programming problem
    2014多校第十场1004 || HDU 4974 A simple water problem
    POJ 1144 Network(Tarjan)
  • 原文地址:https://www.cnblogs.com/lalavender/p/10744907.html
Copyright © 2011-2022 走看看