如何动态设置django的model field的默认值

如何动态设置django的model field的默认值,第1张

动态设置django的model field的默认值:

def get_default_ignore_fort():

    cur_env =ENV.upper()

    return any(i in cur_env for i in ('UAT', 'FAT'))

class Application(TimestampedModel):

    name = models.CharField(max_length=255, null=True)

    ignore_fort = models.BooleanField(default=get_default_ignore_fort)

直接从Django模型字段参考:Field.null如果True,Django存储空值NULL在数据库中。默认值是False。

需要注意的是空字符串值总是会得到存储为空字符串,而不是NULL。null=True对于非字符串字段,如整数,布尔和日期。对于这两种类型的字段,你还需要设置blank=True如果你希望允许空值的表单,为null仅影响数据库存储(见blank)。null关于基于字符串的字段

CodeGo.net,如CharField和TextField除非你有一个很好的理由。如果一个基于字符串的字段null=True,它具有“无数据”两个可能的值:NULL和空字符串。在大多数情况下,它是多余的,以有两个可能的值“没有数据”

Django的惯例是空字符串,不NULL。Field.blank如果True,该字段允许为空。默认值是False。

注意,这是比不同null。null纯粹是数据库相关的,而blank为验证相关。如果一个字段blank=True,验证在Django管理站点将允许空值条目。如果一个字段blank=False,该领域将是必需的。Field.default默认值的字段。这可以是一个值或一个可调用对象。如果调用它会在每次调用时创建一个新的对象。

难道你不明白这一切?

从文档:null如果为True,Django存储空 值NULL,在数据库中。

默认值为False。blank如果为True,则字段允许 为空白。默认值为False。default为默认值 场。

你“default“设置将用于该领域的问题应该你的代码没有明确将其设置为一个值的值。

使用“blank“表单验证目的-空白=TRUE将允许字段设置为空值

使用“null“如果你想存储一个空值”在DB空“,通常它可是首选,设置空白值设置为空字符串,或(如适用)给定字段0。

Null =

None Blank = "" Default = "" 大概是因为它得到。 空白意味着它是NOT

NULL,而是具有价值,它表示“空”为数据类型,它在一个字符串的情况下,可能是一个空字符串。对于数字可能是0。

最简单的办法是。为数据库的表建立一个model。具体做法是这样子。

1.在settings.py里设置数据库连接方式。连接错误后面都没有办法

2.在models设置一个数据库表的对应数据结构,通常叫关系对象模型,所以叫model,它就是一个类。你可以用django-admin.py ...probe,似乎是这个命令,就是一个数据库的探测命令,可以根据表,自动生成model的代码。当然如果你先写了model的代码就可以用syncdb命令生成数据库的表

3.在urls.py里设置一个URL的path,当浏览器访问这个path时就可以打开对应的view中的函数

4.在view里

4.1 result=modelclass.objects.all()这个命令可以取出所有的记录

4.2 然后你可以直接将结果传递给模板。由模板显示。这是最合理的办法

4.3 在模板里 {% for cols in result %}

4.4 <li>cols.field1</li>

大约就是这样子。可能说的太粗。你对着教程看就知道了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11873790.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存