Мои модели:
class Order(models.Model):
ordered_by = models.ForeignKey(User)
reasons = models.ManyToManyField(Reason)
class Reason(models.Model):
description = models.CharField()
В основном пользователь создает порядок и приводит причины для того порядка. т.е., у Джона есть два заказов (один для карандашей, потому что он отсутствует И потому что ему не нравится его текущий запас. второй порядок для перьев, потому что он отсутствует).
Я хочу распечатать список из всех причин, пользователь разместил свои заказы. Таким образом при Джоне, это должно распечатать, "он отсутствует", "ему не нравится его текущий запас"; те две строки только. Если я просто выберу все заказы Джона, выполню итерации через них и распечатаю их "причины", то это распечатает, "он отсутствует", "ему не нравится его текущий запас" и затем "он отсутствует" снова. Я не хочу эти дублирующиеся значения.
Как я выбираю список его причин ВСЕХ его заказов так, чтобы список имел все уникальные строки?
Reason.objects.filter(order__ordered_by=john).distinct()