Найти - Пользователи
Полная версия: orm, сгруппированные записи
Начало » Django » orm, сгруппированные записи
1
ilnur
привет

есть двемодели:

class GroupName(models.Model):
    name = model.CharField()
class Type(models.Model):
    name = model.Charfield()
    group = model.ForeignKey(GroupName)

не могу понять как получит все Type, сгруппированные по GroupName
plusplus
group = get_object_or_404(GroupName, name='some_name')
types = group.type_set.all()
ilnur
это получится на ждую группу по запросу.
Вроде можно же как то получить одним запросом данные вида
{группа1: , группа2: {4,5,6}}
FishHook
annotate и aggregate - это, ИМХО, сама мякотка дебилизма джанговского ОРМ,
я третий год с джангой работаю, и каждый раз эти конструкции пишу наугад.
Если записей не много, то проще выбрать всё и питонячьими методами сделать любую структуру которую хочется.
ilnur
я вот тоже никак не вкурю эти два метода.
Через питон уже сделал.
Dr.Livsi
как вариант: extra + тег regroup
magnet85
Type.objects.values('group').annotate(gcount=Count('group'))
FishHook
magnet85
Type.objects.values('group').annotate(gcount=Count('group'))
А ТС не говорил, что ему нужно количество записей, он говорил совсем не это, прочитайте еще раз, пожалуйста.
FishHook
Стоп! Ильнур, а почему “это получится на ждую группу по запросу”?
С какого то перепугу?
ilnur
plusplus
group = get_object_or_404(GroupName, name='some_name') # получили группу
types = group.type_set.all() # получили типы группы
И так для всех групп.
Разве нет?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB