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 и отформатируйте данные.

Вернуться на верх