Django CharField空白vs默认为空

时间:2015-11-18 02:29:01

标签: python django django-models

Django应用程序中这两个字段有什么区别?我应该期待什么样的行为?

field_a = CharField(max_length=50, verbose_name='field_a', blank=True)
field_b = CharField(max_length=50, verbose_name='field_b', blank=True, default='')

1 个答案:

答案 0 :(得分:7)

如果未给出default值,则根据以下代码(取自CharField)将空字符串用于django/db/models/fields/__init__.py

def get_default(self):
    """
    Returns the default value for this field.
    """
    if self.has_default():
        if callable(self.default):
            return self.default()
        return self.default
    if (not self.empty_strings_allowed or (self.null and
               not connection.features.interprets_empty_strings_as_nulls)):
        return None
    return ""

所以他们应该表现得一样。