【问题标题】:how to set the default value for grouped choices in django如何在 django 中为分组选项设置默认值
【发布时间】:2011-04-26 19:53:22
【问题描述】:

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

对于这个类,我想将“状态”字段的默认设置为 Blocked -> False and Sticky -> False

谢谢

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      如果您希望字段互斥,有多种方法可以解决此问题 - 修改保存方法可以很好地平衡易用性和直接性。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-22
        • 1970-01-01
        • 1970-01-01
        • 2014-12-10
        • 2010-10-09
        相关资源
        最近更新 更多