Django模型中字段的默认值

时间:2010-05-06 19:01:31

标签: django django-models django-admin django-forms

假设我有一个模型:

class SomeModel(models.Model):
   id = models.AutoField(primary_key=True)
   a = models.IntegerField(max_length=10)
   b = models.CharField(max_length=7)

目前我正在使用默认管理员来创建/编辑此类型的对象。如何将字段'a'设置为与id相同的数字? (缺省值= ???)



其他问题

假设我有一个模型:

   event_date = models.DateTimeField( null=True)
      year = models.IntegerField( null=True)
      month = models.CharField(max_length=50, null=True)
      day = models.IntegerField( null=True)

如何将默认情况下的年,月和日字段设置为与event_date字段相同?

2 个答案:

答案 0 :(得分:1)

您可以覆盖save()方法,如果此时a仍然为空/空,请复制id字段。第二个问题也是如此。

答案 1 :(得分:0)

它必须是存储在数据库中的字段吗? (冗余是坏yaddayadda)

如果你只是想从python中调用它,请使用:

event_date = models.DateTimeField( null=True)

@property
def year(self):
    return self.event_date and self.event_date.strftime("%Y") or None