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='')
答案 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 ""
所以他们应该表现得一样。