【问题标题】:Django choices. How to set default option?Django 的选择。如何设置默认选项?
【发布时间】:2012-10-04 10:54:47
【问题描述】:

如何设置默认STATUSES选项?

class Order(models.Model):
    STATUSES = (
        (u'E', u'Expected'),
        (u'S', u'Sent'),
        (u'F', u'Finished'),
    )

    status = models.CharField(max_length=2, null=True, choices=STATUSES)

【问题讨论】:

    标签: django


    【解决方案1】:
    status = models.CharField(max_length=2, null=True, choices=STATUSES, default='E')
    

    或避免在 STATUSES 更改时设置无效的默认值:

    status = models.CharField(max_length=2, null=True, choices=STATUSES, default=STATUSES[0][0])
    

    【讨论】:

      【解决方案2】:

      这是一个老问题,只是想添加现在可用的 Djanto 3.x+ 语法:

      class StatusChoice(models.TextChoices):
          EXPECTED = u'E', 'Expected'
          SENT = u'S', 'Sent'
          FINISHED = u'F', 'Finished'
      
      

      然后,您可以使用此语法设置默认值:

      status = models.CharField(
          max_length=2,
          null=True,
          choices=StatusChoice.choices,
          default=StatusChoice.EXPECTED
      )
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      • 2017-12-11
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      相关资源
      最近更新 更多