Значение по умолчанию для поля в модели Django - PullRequest
0 голосов
/ 06 мая 2010

Предположим, у меня есть модель:

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

В настоящее время я использую администратора по умолчанию для создания / редактирования объектов этого типа. Как установить в поле «а» тот же номер, что и у идентификатора? (По умолчанию = ???)



Другой вопрос

Предположим, у меня есть модель:

   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 ]

1 голос
/ 06 мая 2010

Вы можете переопределить метод save(), и если a все еще пуст / пуст в этой точке, скопируйте поле id. То же самое касается вашего второго вопроса.

0 голосов
/ 06 мая 2010

Должно ли быть полем, хранящимся в базе данных?(избыточность плохая yaddayadda)

Если вы просто хотите вызвать его изнутри python, используйте это:

event_date = models.DateTimeField( null=True)

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