Получить список значений из модели ManytoMany - PullRequest
0 голосов
/ 01 марта 2019

Я хотел бы получить список значений в формате ['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'}]

Как мне получить этот ответ QuerySet в этом формате ['BMW', 'Mercedes', 'Audi']?

Я пытался list(select) и tuple(select), который возвращает:

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

и

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

но уже сейчас мне кажется, что я сделал слишком много шагов для, казалось бы, простой просьбы. Мой вопрос: как мне более правильно достичь своей цели?

1 Ответ

0 голосов
/ 01 марта 2019

Вместо этого вы можете использовать метод values_list:

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