Python 在django模型中指定整数选项有什么意义?
官方django文档给出了以下示例,用于为列指定整数选项:Python 在django模型中指定整数选项有什么意义?,python,django,Python,Django,官方django文档给出了以下示例,用于为列指定整数选项: class Card(models.Model): class Suit(models.IntegerChoices): DIAMOND = 1 SPADE = 2 HEART = 3 CLUB = 4 suit = models.IntegerField(choices=Suit.choices) 但是,我发现如果打开“python manage.py shell”并简单地执行以下操作: c =
class Card(models.Model):
class Suit(models.IntegerChoices):
DIAMOND = 1
SPADE = 2
HEART = 3
CLUB = 4
suit = models.IntegerField(choices=Suit.choices)
但是,我发现如果打开“python manage.py shell”并简单地执行以下操作:
c = Card()
c.suit = 5
c.save()
即使我的选择中没有包含5,它也可以毫无问题地保存卡。那么,指定我的整数选择的意义是什么呢?提供选择的意义在于用户提供的数据验证。您的表单将不接受您定义的选项所包含的任何其他输入 作为一名开发人员,您可以自由放置任何您想要的数据,只要它符合您定义的数据库约束 您需要注意的是,在提供的示例中,您在保存模型之前没有对其进行验证。如果您这样做,它将触发一个异常
c = Card()
c.suit = 5
# Validation !
c.full_clean()
c.save()