检查是否存在Django模型字段选择

Jus*_*cas 2 python django django-models

我正在尝试检查为模型字段设置的选择元组中是否存在值.

例如,假设我有一个这样的模型:

class Vote(models.Model):
 VOTE_TYPE = (
  (1, "Up"),
  (-1, "Down"),
 )

 value = models.SmallIntegerField(max_length=1, choices=VOTE_TYPES)
Run Code Online (Sandbox Code Playgroud)

现在让我们在一个视图中说我有一个变量new_value = 'Up',我想用它作为新投票中的值字段.我怎样才能首先检查VOTE_TYPE元组中是否存在该变量的值?谢谢.

Anu*_*yal 12

  1. 您确定要将值设置为"Up"吗?这是一个显示值,您可能有兴趣将值设置为-1或1

  2. 您可以通过将选项列表转换为dict来轻松检查选项是否在列表中

    my_choice in dict(VOTE_TYPE)

  3. 如果可能,您可以使用choiceField或TypedChoiceField,它们将验证选择列表中是否存在给定值.