Blog


Below are my posts

Django Multiple Image Upload with Dropzone.js

The easiest solution I have found to upload multiple images has been Dropzone.js. This is the second time I have implemented it in a Django app and I always end up customizing it a bit because I like ...

Cache Django View with Redis

If you have views in your application that rarely change, this is a great opportunity to cache them to reduce response times. Caching your Django view will reduce unnecessary database calls and templa...

Django Pagination with Bootstrap

There are some great Django pagination examples out there but none of them quite worked for me, so here's another one. If you are first starting out, pagination is "the process of dividing a document ...

Django Docker Deployment with GitLab CI

Setting up a CI workflow with GitLab can take some time up front, but you'll be happy you did it when you need to push some updates. I have everything running on a personal server in my home and I fou...

Bamboo CI with SonarQube and Django

This post describes how to use Atlassian Bamboo to create a simple Django build plan and scan the source code with SonarQube when a pull request is created in Bitbucket. It uses two cheap apps (if you...

Add a Processing Progress Bar to Your Site

If you find the need to use progress bars on your site, I highly recommend using celery to queue your processes (so your system isn't overloaded). [Building Progress Bars for the Web with Django and C...

Dynamic List Creation with Django and AJAX

Have you ever been to a site where they have that "+" next to a list of fields or files and wanted to implement that yourself? I was in a situation at work where we wanted to add a bunch of key-value ...

Warn User of Unsaved Changes without jQuery

When searching for a way to warn a user before leaving web page if changes haven't been saved, I found the solution below at [https://stackoverflow.com/a/48238659/9512437](https://stackoverflow.com/a/...

Apache & BIND DNS with Django, JIRA and Bitbucket

This guide walks you through a basic (though not completely functional) setup of Apache and BIND to allow you to access your site and other servers locally through DNS names. Most of this comes fro...

Swipe Side Navigation Drawer With Hammer.js

I was surprised that I couldn't find a side navbar/ navigation drawer for Bootstrap that fit what I needed. Since everything is mobile now, I assumed swipe open examples would be everywhere, but I did...

Load Disqus on Button Click

Adding Disqus to your webpage is dead simple if you follow their instructions, but what if you don't want the comments to load by default? Well, if you're like me (and pretty mu...

How to Use Django-Markdownx for Your Blog

This is my first crack at using Django-Markdownx, which is a comprehensive Markdown plugin built for Django that has raw editing and a live preview inside of the Django admin. I looked into many othe...