[英]Get value list from ManytoMany model
I would like to retrieve a list of values on the format ['BMW', 'Mercedes', 'Audi']
(these are the three selected out from a list of 50+ different car makes made in a multiple select form field/list.我想检索格式为
['BMW', 'Mercedes', 'Audi']
的值列表(这些是从 50 多种不同汽车制造商的列表中选出的三个,该列表是在多选表单字段/列表中制作的.
Values exist in a ManyToMany:值存在于多对多中:
class CarMakeModel(models.Model):
Make = models.CharField(max_length=30)
class Product(models.Model):
selection = models.ManyToManyField(CarMakeModel)
Now I would like to retrieve the selection made, eg in the shell:现在我想检索所做的选择,例如在 shell 中:
select = product.models.Product.objects.latest('id').selection.values('Make')
This will return:这将返回:
<QuerySet [{'Make': 'BMW'}, {'Make': 'Mercedes'}, 'Make': 'Audi'}]
How do I get this QuerySet reply into this format ['BMW', 'Mercedes', 'Audi']
?我如何将此 QuerySet 回复转换为这种格式
['BMW', 'Mercedes', 'Audi']
?
I have tried list(select)
and tuple(select)
which returns:我试过
list(select)
和tuple(select)
返回:
[{'Make': 'BMW'}, {'Make': 'Mercedes'}, 'Make': 'Audi'}]
and和
({'Make': 'BMW'}, {'Make': 'Mercedes'}, 'Make': 'Audi'})
but already now it feels I have taken too many steps for a seemingly simple request.但现在已经感觉我为一个看似简单的请求采取了太多步骤。 My question is how do I more correct achieve my aim?
我的问题是如何更正确地实现我的目标?
您可以改用values_list
方法:
select = product.models.Product.objects.latest('id').selection.values_list('Make', flat=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.