确定Django模型是否具有默认值

时间:2012-09-06 11:39:48

标签: django django-models

我想知道是否有一种编程方式可以找到分配给任何模型上字段的默认值,我有模型实例和字段名称。

在下面的模型中,我必须从u_value,allow_profile获取默认值,如果它们为Null则禁用,以便能够正确保存数据。数据库是Firebird

例如型号:

class Fitting(models.Model):
    uuid                         = UUIDField(primary_key=True)
    bought_in_control_panel_file = models.ForeignKey(BoughtInControlPanelFile, db_column='bought_in_control_panel_file_id',null=True, blank=True)
    name                         = models.CharField(_('name'),null=True, blank=False,max_length=255)                           
    code                         = models.CharField(_('Code'),null=True, blank=True,max_length=255)
    fire_rating                  = models.ForeignKey(FireRating, db_column='fire_rating_id',null=True, blank=True)
    u_value                      = models.FloatField(_('U-value'),default=0)
    acoustic_rating              = models.FloatField(_('Acoustic Rating'),default=0)
    allow_profile                = models.BooleanField(default=0)
    disabled                     = models.BooleanField(default=0)
    date_time_updated            = models.DateTimeField(null=True, blank=True, auto_now=True)

2 个答案:

答案 0 :(得分:3)

model_field.get_default()返回分配给模型字段的默认值

示例:

model = Polls.objects.all()
for model_field in model:
    print model_field.get_default()

答案 1 :(得分:0)

当您保存模型实例并且未设置所需的非空字段时,Django将自动使用默认值保存模型实例。

如果没有明确设置,您的对象是否在DB中保存了默认值?

default属性的值可以是在保存新对象时调用的函数。您可能也想尝试一下。