Python 如何通过选项查询Django ForeignKey模型字段';可读的名字?

Python 如何通过选项查询Django ForeignKey模型字段';可读的名字?,python,django,django-models,django-queryset,Python,Django,Django Models,Django Queryset,这是我的班级: class UserProfile(TimeStampedModel): # some fields class UserCohort(TimeStampedModel): CHOICE1, CHOICE2, CHOICE3 = range(3) COHORT_TYPES = ( (CHOICE1, 'Readable 1'), (CHOICE2, 'Readable 2'), (CHOICE3, 'Re

这是我的班级:

class UserProfile(TimeStampedModel):
    # some fields

class UserCohort(TimeStampedModel):
    CHOICE1, CHOICE2, CHOICE3 = range(3)

    COHORT_TYPES = (
        (CHOICE1, 'Readable 1'),
        (CHOICE2, 'Readable 2'),
        (CHOICE3, 'Readable 3'))

    user_profile = models.ForeignKey('UserProfile', related_name='cohorts')    
    cohort = models.IntegerField(choices=COHORT_TYPES)
我想按可读名称而不是整数进行筛选查询。如果我使用
my\u values=UserProfile.objects.filter(courts\uu-court='Readable 1')
它不起作用,但是如果我用相应的整数
0
替换
'Readable 1'
,它就会起作用


有没有办法通过可读名称进行查询?

没有办法使用
可读1
值,因为这不是保存在数据库中的值。但是,您可以使用您定义的常量
选项1

UserProfile.objects.filter(cohorts__cohort=UserCohort.CHOICE1)
如果您从用户处收到
“Readable 1”
,则说明您做错了。使用字段值作为输入元素的
值。或者更好的方法是,使用能为您处理一切的
ModelForm