Python/Django:从 values_list() 创建一个更简单的列表

新手上路,请多包涵

考虑:

 >>>jr.operators.values_list('id')
[(1,), (2,), (3,)]

如何进一步简化为:

 ['1', '2', '3']

目的:

 class ActivityForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(ActivityForm, self).__init__(*args, **kwargs)
        if self.initial['job_record']:
            jr = JobRecord.objects.get(pk=self.initial['job_record'])

            # Operators
            self.fields['operators'].queryset = jr.operators

            # select all operators by default
            self.initial['operators'] = jr.operators.values_list('id') # refined as above.

原文由 Antonius Common 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 400
2 个回答

使用 flat=True django 查询集的构造: https ://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.values_list

从文档中的示例:

 >>> Entry.objects.values_list('id', flat=True).order_by('id')
[1, 2, 3, ...]

原文由 Jarret Hardie 发布,翻译遵循 CC BY-SA 3.0 许可协议

你需要做 .. 得到这个输出 [‘1’, ‘2’, ‘3’]

map(str, Entry.objects.values_list('id', flat=True).order_by('id'))

原文由 Manjunath Raddi 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏