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