Python 如何在模型字段和选项中比较unicode字符串?德扬戈

Python 如何在模型字段和选项中比较unicode字符串?德扬戈,python,django,if-statement,unicode,compare,Python,Django,If Statement,Unicode,Compare,我不确定我做错了哪一部分,但不知何故我尝试比较两个值,我100%确定它们匹配,但不知何故代码不会执行 假设我有这个模型(请原谅模型和字段名有点输入错误) 我的选择 GENDER_CHOICES = (("MALE", "MALE"), ("FEMALE", "FEMALE")) 我确信我的gender字段对于对象是MALE,所以我做这句话是为了检查它是否是MALE做点什么 if a.gender is `MALE`: # do something here 但它从来没有达到它的真实性

我不确定我做错了哪一部分,但不知何故我尝试比较两个值,我100%确定它们匹配,但不知何故代码不会执行

假设我有这个模型(请原谅模型和字段名有点输入错误)

我的选择

GENDER_CHOICES = (("MALE", "MALE"), ("FEMALE", "FEMALE"))
我确信我的
gender
字段对于对象是
MALE
,所以我做这句话是为了检查它是否是
MALE
做点什么

if a.gender is `MALE`:
    # do something here
但它从来没有达到它的真实性。我检查了
a.gender
是一种
unicode
类型,所以我甚至做了
str(a.gender)
,以确保它也是一个字符串,但仍然没有运气

我做错什么了吗

另外,我用
a.gender
进行了打印,并确保输出为
MALE

提前感谢

不要做:

if a.gender is 'MALE':
# equivalent to:
# id(a.gender) == id('MALE')
改为:

if a.gender == 'MALE':
“is”
关键字检查对象标识,即两个变量/对象是否引用相同的内存地址
'='
检查类'
''eq'
方法中定义的相等性,在您的情况下,该方法将执行预期的字符串比较

查看详细解释。

不要执行以下操作:

if a.gender is 'MALE':
# equivalent to:
# id(a.gender) == id('MALE')
改为:

if a.gender == 'MALE':
“is”
关键字检查对象标识,即两个变量/对象是否引用相同的内存地址
'='
检查类'
''eq'
方法中定义的相等性,在您的情况下,该方法将执行预期的字符串比较


查看详细解释。

Thx-Thx,我能说它与JavaScript中的triple=相同吗?Thx-Thx,我能说它与JavaScript中的triple=相同吗?