Hvorfor fik kunden ikke rabatten? Få svaret med reglen i koden.
Priser, rabatter og regler ligger ofte i views.py eller en service, som kun udviklerne kan læse. Adea læser den og forklarer trin for trin, hvad der skete på en bestemt ordre.
Hvorfor fik ordre 10432 ikke mængderabat?
- Finder ordre 10432
- Læser shop/pricing.py
- Sammenholder reglen med ordrelinjerne
Hvorfor fik ordre 10432 ikke mængderabat?
Ordren havde 9 varer, og mængderabatten starter ved 10. Rabatten gælder desuden kun varer i kategorien Værktøj, og 2 af varerne var i kategorien Tilbehør.
Her kommer tallet fra
Koden, Adea læste shop/pricing.py:112
def volume_discount(lines):
eligible = [l for l in lines
if l.product.category == 'tools']
if sum(l.qty for l in eligible) >= 10:
return Decimal('0.08')Opslaget, Adea lavede
SELECT l.qty, c.name FROM shop_orderline l JOIN shop_product p ON p.id = l.product_id JOIN shop_category c ON c.id = p.category_id WHERE l.order_id = 10432
Det får du
Forklarer, ikke bare tæller
Adea viser forløbet: hvilke linjer der talte med, hvilken regel der blev ramt, og hvorfor grænsen ikke blev nået. Support kan svare kunden med det samme.
Forstår jeres ORM
Adea følger relationer og managers i Django-modellerne og finder de rigtige tabeller, også når navnene ikke ligner dem, I bruger i daglig tale.
Reglen kan rettes
Hvis Adea har forstået en regel forkert, retter en udvikler den. Rettelsen gælder alle fremtidige svar.
Sådan forbinder du en Django-app
Giv læseadgang til repoet og til en Postgres-læsebruger. Adea finder modellerne selv.
CREATE ROLE adea_laese LOGIN PASSWORD '…'; GRANT SELECT ON ALL TABLES IN SCHEMA public TO adea_laese;Læs vejledningen
Spørgsmål om Django
Virker det med Django REST framework og Celery?
Adea læser den kode, der bestemmer reglerne, uanset om den ligger i views, serializers, services eller tasks.
Kan support se kundens data?
Kun de tabeller og kolonner, du åbner for deres rolle.
Hvad med Django admin?
Det er ikke nødvendigt, men du kan lade Adea linke til posten i admin i svaret.