Учитывая следующие модели, мне нужно вернуть список Ссылки для каждого Место, сгруппированных по категориям .Список, Группа нескольких экземпляров объекта на основе ManyToMany поля в Django
class Place(models.Model):
name = models.CharField(max_length=100)
class Category(models.Model):
name = models.CharField(max_length=100)
description = models.TextField()
class Link(models.Model):
name = models.CharField(max_length=100)
url = models.URLField()
place = models.ManyToManyField('Place')
categories = models.ManyToManyField('Category')
description = models.TextField()
featured = models.BooleanField()
published = models.BooleanField()
date_added = models.DateField(auto_now_add=True)
Результат будет выглядеть примерно так:
Некоторые Место
Информация о каком-то месте ... (не очень важный вопрос) для
Банки
Банк Америки
Коммерческий банк
Первый национальный B ANK
Финансовые услуги
Банк Америки
Edward Jones
Кредиты
Commerce Bank
Первого Национального банка
Как вы можете видеть, Link должны быть перечислены в каждом Категория, в котором он принадлежит.
Я попытался пропустить категории и объединить запросы, но с полями ManyToMany, похоже, не представляется возможным сделать необходимый вид, который можно передать в шаблон и сгруппировать там.
Если вы только что разместили place.link_set.all(), ссылки, которые должны отображаться в нескольких категориях, отображаются только в наборе запросов один раз вместо одного для каждой категории, в которой они перечислены. Не говоря уже о том, что сортировать ссылки по названию категории невозможно. Я думаю, что способ сделать это - использовать промежуточное поле для отношений ManyToMany. Таким образом, экземпляры каждого листинга в каждой категории могут быть восстановлены и отсортированы. – 2009-11-25 05:52:04