Задумался я над таким вопросом - что правильнее с точки зрения дзена и вообще использовать - один-ко-многим или многие-ко-многим в следующей ситуации:
Есть 2 модели - заказ и счет.
К заказу может быть несколько счетов.
Соответственно, можно их связать через m2m поле в заказе, а можно просто FK к заказу из счета.
В практике необходимы и списки чисто счетов со ссылкой на заказ, и списки заказов с суммами по ним, и подсчеты за месяц, и по контрагенту, ну и прочая-прочая.
В принципе, и один, и другой способы работают - что выборка типа:
qs.values('order').annotate(i_amount=Sum('amount'), i_paid_amount= Sum('paid_amount')).order_by('month')
что
orders.aggregate(i_sum=Sum('invoices__price'))
Вот а все же вопрос, что правильнее по всем фронтам?