如何在django中为分组选项设置默认值

时间:2010-10-18 08:18:12

标签: python django django-models

如果我对models.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)

对于这个类,我想将'state'字段的默认值设置为Blocked - >虚假和粘性 - >假

由于

2 个答案:

答案 0 :(得分:1)

您误解了分组选择的作用。它们仅用于演示 - 您的IntegerField只能表示一个值,在您的情况下将为0或1(对于False或True)。小组唯一做的就是在选择框中提供标题。在设置中你没有办法为Sticky和Blocked设置单独的值。

答案 1 :(得分:0)

您需要两个整数字段 - 一个用于Sticky,一个用于Blocked。

然后您可以在字段本身中以通常的方式设置默认值。

如果您希望这些字段是互斥的,可以通过多种方式来解决这个问题 - 修改保存方法是一种轻松和直接的平衡。

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