首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同Django模型字段的默认值是否记录在某个地方?

不同Django模型字段的默认值是否记录在某个地方?
EN

Stack Overflow用户
提问于 2013-06-11 08:59:52
回答 1查看 119关注 0票数 0

的部分南方文档中,它说

“有些列没有默认定义”。

,当使用syncdb时,哪个模型字段获得默认值,哪些不使用?(南方文档指出,对于BooleanField,默认值是False)

我已经搜索了Django模型相关文档的模型/ref/和/topic/部件,但是找不到这个。这在什么地方有记录吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-11 10:08:47

我在文档中也找不到答案,所以我检查了模型字段的源代码。除BinaryField外,每个模型字段的“默认”都是由此方法提供的:

代码语言:javascript
运行
复制
def get_default(self):
    """
    Returns the default value for this field.
    """
    if self.has_default():
        if callable(self.default):
            return self.default()
        return force_text(self.default, strings_only=True)
    if (not self.empty_strings_allowed or (self.null and
               not connection.features.interprets_empty_strings_as_nulls)):
        return None
    return ""

因此,大多数字段类型的“默认”取决于get_prep_value如何处理空字符串。get_prep_value的各种实现可以在同一源文件中找到。看起来大多数字段都没有“缺省值”,因为大多数get_prep_value实现都不知道如何处理空字符串。该规则的显著例外是BooleanField (默认为False)、CharField (默认为空字符串)和TextField (默认为空字符串)。

我希望这能帮到你!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17040166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档