Django:获取查询集/字典中项目的平面值

Django: Get flat value for an item in a QuerySet / dictionary

我尝试了很多方法,包括 itervalues()values_list()values(),但我似乎无法仅获取我创建的字典中对象的值。在我看来,这是以下代码:

choices = Choice.objects.filter(question_id=q.id).order_by('order')

for c in choices:
    new_c = dict(choice_id=c.id, question_id=c.question_id, choice=c.choice, order=g.order,
                         text=c.text, skip_to=c.skip_to)

    if new_c['skip_to']:
        new_s = dict(question_id=q.id, skip_to=c.skip_to, page_number=0)
                skip_to_list.append(new_s)

        new_q['choices'].append(new_c)

当我打印这个时,我得到:

[{'page_number': 0, 'skip_to': <Group: 5>, 'question_id': 1}, {'page_number': 0, 'skip_to': <Group: 5>, 'question_id': 2}, {'page_number': 0, 'skip_to': <Group: 5>, 'question_id': 3}]

如您所见,skip_to 的值为 <Group: 5>。在我的模型中,skip_to 的值等于我的 Group 对象中的一个 fk。我只希望值等于 5。我不要集团。但这是我唯一想要具有固定值的项目,我不希望整个 choice 对象具有固定值。

抱歉,对于如何在列表和词典中导航和迭代仍然是个新手,但经过几个小时的搜索,我想我会问一下。

假设5是Group模型的id(主键),可以这样赋值:

skip_to=c.skip_to.pk