Как установить значение по умолчанию для сгруппированных вариантов в Django - PullRequest
0 голосов
/ 18 октября 2010

Если у меня есть несколько сгруппированных вариантов для моделей. IntegerField, как я могу установить значение по умолчанию для комбинации этих вариантов

например:

class ForumThread():
    STATE_CHOICES = (
        ('Sticky', (
            (True,  'True'),
            (False, 'False')    )     ),
        ('Blocked', (
            (False, 'False')
            (True,  'True')     )     ),
    )

    name = models.CharField(max_length= 256)
    description = models.CharField(max_length= 256)
    state = models.IntegerField(choices= STATE_CHOICES)

для этого класса я хочу установить для поля «состояние» по умолчанию значение Заблокировано -> Ложь и Липкость -> Ложь

Спасибо

Ответы [ 2 ]

1 голос
/ 18 октября 2010

Вы неправильно поняли, что делает групповой выбор.Они предназначены только для представления - ваш IntegerField может представлять только одно единственное значение, которое в вашем случае будет 0 или 1 (для False или True).Единственное, что делают группы, это предоставляют заголовки в поле выбора.В настройках нет способа использовать отдельные значения для Sticky и Blocked.

0 голосов
/ 19 октября 2010

Вам нужны два целых поля - одно для Sticky и одно для Blocked.

Затем вы можете установить значения по умолчанию обычным способом в самом поле.

Если вы хотите, чтобы полябыть взаимоисключающими, есть несколько способов приблизиться к этому - изменение метода сохранения является хорошим балансом простоты и прямолинейности.

http://docs.djangoproject.com/en/dev/ref/models/instances/#saving-objects

...