The bugs that pass every check
A 2xx response that saved nothing. A form that 500s on GET. Three bugs that passed manage.py check, passed their tests, and shipped.
Posts tagged with Django.
A 2xx response that saved nothing. A form that 500s on GET. Three bugs that passed manage.py check, passed their tests, and shipped.
A festival's data is a sequence of past states, not a current one. The pivot, the per-year overrides, and the two switches that close a submission.
An MX pointing at a server that does not know your domain bounces mail permanently. The ordering rule, and the DNS records the platform keeps.
Several people fill one submission together, none of them signed in. Tokens, seats, presence, and the row lock that stops a lost update.
Two ways to point at a row of another form — by id, or by any UNIQUE column. Why the second exists, and what building SQL against runtime tables costs.
Candidates pay at a counter, not online. The QR code that joins the two carries no authority — and the guard lives in one function, not four screens.
Sixty-three exams, zero convocations. A seat is a physical resource that can be taken twice. The constraint, the race, and the report that names refusals.
A workflow that lives in data has no readable form. A hand-drawn diagram is wrong in a month. Generate it — and make it report what has no path.
Six locales, one of them the source language. gettext fuzzy-matched 2327 entries in it. No symptom, until a flag went missing.
A camera field produces a file minutes before the form exists. Uploading it early inverts ownership, and the fence that puts it back.
Eight business tables, one HNSW index, and a rule: no embedding is ever computed inside a request. The projection, the loops, and the worker.
A school's data arrives as spreadsheets nobody cleaned. The hard part is not parsing them: it is saying what will happen before it happens.
Tell us about your needs in IoT, GIS, or custom development — we'll get back to you within 24h.