Stack · Django

Hvorfor fik kunden ikke rabatten? Få svaret med reglen i koden.

Priser, rabatter og regler ligger ofte i en 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.

Gratis og uden tilmelding. Hellere en guidet tur? Book 20 minutter med os →

Sådan ser et svar ud

Hvorfor fik ordre 10432 ikke mængderabat?

Adea
  • Finder ordre 10432
  • Læser shop/pricing.py
  • Sammenholder reglen med ordrelinjerne

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.

Kildershop/pricing.py:112

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')

Forespørgslen, Adea kørte (kun læsning)

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

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 det, I siger til hinanden.

Reglen kan rettes

Hvis Adea har forstået en regel forkert, retter en udvikler den. Rettelsen gælder alle fremtidige svar.

Sådan forbinder I en Django-app

Giv læseadgang til repoet og til en Postgres-læsebruger. Adea finder modellerne selv.

Læs mere om sikkerhed →

CREATE ROLE adea_laese LOGIN PASSWORD '…';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO adea_laese;

Ofte stillede spørgsmål

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, I åbner for deres rolle.

Hvad med Django admin?

Det er ikke nødvendigt, men I kan lade Adea linke til posten i admin i svaret.