从ManytoMany模型获取值列表

时间:2019-02-28 23:35:19

标签: python django python-3.x django-models django-forms

我想检索['BMW', 'Mercedes', 'Audi']格式的值列表(这是从多个选择形式的字段/列表中制成的50多种不同汽车制造商的列表中选择的三个。

值存在于ManyToMany中:

class CarMakeModel(models.Model):
    Make = models.CharField(max_length=30)

class Product(models.Model):
    selection = models.ManyToManyField(CarMakeModel)

现在,我想检索所做的选择,例如在外壳中:

select = product.models.Product.objects.latest('id').selection.values('Make')

这将返回:

<QuerySet [{'Make': 'BMW'}, {'Make': 'Mercedes'}, 'Make': 'Audi'}]

如何以这种格式['BMW', 'Mercedes', 'Audi']来获得此QuerySet答复?

我尝试了list(select)tuple(select)的返回:

[{'Make': 'BMW'}, {'Make': 'Mercedes'}, 'Make': 'Audi'}]

({'Make': 'BMW'}, {'Make': 'Mercedes'}, 'Make': 'Audi'})

但是现在已经感觉到我为看似简单的请求采取了太多步骤。我的问题是如何更正确地实现自己的目标?

1 个答案:

答案 0 :(得分:1)

您可以改用values_list方法:

select = product.models.Product.objects.latest('id').selection.values_list('Make', flat=True)