Я хотел бы иметь что-то вроде этогоКак получить количество элементов, сгруппированных по свойству промежуточной модели
Adventure() | Sci-fi()
которые являются книгами в книжном магазине, связанными по местной цене.
Скажем, Хоббит составляет 5 долларов США в Амазонке и 6 долларов в Барнсе. Поэтому, если бы я перечислял книги в Amazon, у меня будет Adventure (1) как количество книг с определенной ценой на амазонке.
Если я, как это я получаю правильные Жанры:
for u in Bookshop.objects.get(pk=1).BookBookshopLink_set.all():
print u.book.genre
, который будет печатать, например:
Sci-fi
Sci-fi
Adventure
Здесь находятся модели:
from parler.models import TranslatableModel, TranslatedFields
from parler.managers import TranslationManager
class Genre(TranslatableModel):
translations = TranslatedFields(
name=models.CharField(max_length=200),
slug=models.SlugField(),
description=models.TextField(blank=True),
meta={'unique_together': [('language_code', 'slug')]},
)
published = models.BooleanField(default=False)
class Book(TranslatableModel):
translations = TranslatedFields(
name=models.CharField(max_length=200),
slug=models.SlugField(),
description=models.TextField(blank=True),
meta={'unique_together': [('language_code', 'slug')]},
)
genre = models.ForeignKey(Genre, blank=True, null=True)
published = models.BooleanField(default=False)
class Bookshop(TranslatableModel):
translations = TranslatedFields(
name=models.CharField(max_length=200),
description=models.TextField(_('Description'), default='', blank=True),
slug=models.SlugField(),
meta={'unique_together': [('slug', 'language_code')]},
)
booklist = models.ManyToManyField(Book, blank=True, through='BookBookshopLink')
class BookBookshopLink(TranslatableModel):
bookshop = models.ForeignKey(Bookshop)
book = models.ForeignKey(Book)
price = models.IntegerField(blank=True, null=True)
тогда не ваши примеры генерируют 1 запрос в каждом цикле? скажем, у меня 50 жанров, это будет 50 дополнительных запросов. –