Django distinct queryset
Я новичок в django и, возможно, кто-то здесь может помочь мне с этим.
model.py
class Transaction(models.Model):
ref_code = models.CharField()
buyer = models.ForeignKey(User)
product = models.ForeignKey(Product)
quantity = models.IntegerField()
ref_code is not unique.
Данные выглядят примерно так:
id: 1, buyer: John, product : Book, quantity: 1, ref_code = 111111
id: 2, buyer: Thomas, product : Pencil, quantity: 3, ref_code = 111111
id: 3, buyer: Mary, product : Book, quantity: 2, ref_code = 222222
id: 4, buyer: Bryan, product : Origami, quantity: 2, ref_code = 222222
id: 5, buyer: Anna, product : Eraser, quantity: 5, ref_code = 111111
id: 6, buyer: Lily, product : Notebook, quantity: 1, ref_code = 222222
Как я могу просмотреть покупателя, товар и количество в шаблоне на основе ref_code? Итак, это будет выглядеть следующим образом:
REFERAL CODE: 111111
Buyer: John, Product : Book, Quantity: 1
Buyer: Thomas, Product : Pencil, Quantity: 3
Buyer: Anna, Product : Eraser, Quantity: 5
REFERAL CODE: 222222
Buyer: Mary, Product : Book, Quantity: 2
Buyer: Lily, Product : Notebook, Quantity: 1
Buyer: Bryan, Product : Origami, Quantity: 2
Заранее спасибо
Есть два способа сделать, первый простой, упорядочить по идентификатору ссылки и продолжать обрабатывать данные, пока идентификатор ссылки не изменится, второй немного продвинутый, потребует от вас сделать что-то вроде...
qs = Transaction.objects.values("ref_code").annotate(
buyers=ArrayAgg("buyer"),
products = ArrayAgg("product"),
quantities=ArrayAgg("quantity"))
После этого просто запустите цикл for и отформатируйте данные.