Building a Django app locally is one thing. Getting it running on the internet, on your own server, with a real domain and a database that isn't SQLite — that's a different skill entirely. This post walks through exactly how I deployed my Document Review.
Read MoreA walkthrough of a deployment bug that looked impossible — Django was installed, the venv was active, and gunicorn still couldn't find it.
Read MoreDjango ships with four built-in password validators that check for length, common passwords, numeric-only passwords, and similarity to the user's own info. This post breaks down exactly what they do, why they exist, and how the `try/except ValidationError
Read MoreEvery Django view gets one. Here's what's actually inside it.
Read MoreIt's not about security — it's about how browsers encode and send your form data. One missing attribute, and your file upload silently disappears.
Read MoreWhen you save `under_review` in your database but want to show `Under Review` to your users, Django has a built-in trick for that — and you don't have to write it yourself.
Read MoreDebugging is one of the most important skills in development. Most beginners try random fixes. Good developers follow a system. This guide explains a simple step-by-step debugging process in Django.
Read MoreMost Django beginners wonder why their login form has no action attribute. The answer is simpler than you think — when a view handles both GET and POST at the same URL, the form already knows where to go.
Read MoreA simple walkthrough of the invisible pipeline — from URL to view to template.
Read MoreEver wondered why logging out requires a form submit instead of just clicking a link? It's not arbitrary — it's your app defending itself against a sneaky attack called CSRF. Here's what's happening under the hood.
Read More