Brad's Blog

web dev, django, running, food, or whatever

Published: 2016-03-11

50 miles

lhrl running ultra

Saturday, March 5, 2016. I woke up around 4:30am, and we drove out into the middle of nowhere in southern Mississippi. We arrived around 5:30am, and people were already lining up for the 6:00am start. It was 40°F, but the high for the day was supposed to hit the low-mid 70's. This was the Mississippi Trails 50. I'd run my first 50k in mid-January, but this was my first attempt at a 50-miler—a staple ...


Published: 2016-02-09

Young Coders at PyTennessee 2016

On February 6, 2016 I had the pleasure of teaching the Young Coders class at PyTennesse. It was an incredibly fun and rewarding experience, and I'm looking forward to doing this again at some point in the future. The class We had ten young coders ranging in ages from 12 to 17, and spent most of Saturday morning quickly plowing through examples of using python as a calculator, exploring data types like integers, floats, strings, and lists. We kicked ...


Published: 2015-12-16

Ignoring SuspiciousOperation requests for fun and (profit?)

If you run a Django site, you're probably familiar with those periodic emails due to a SuspiciousOperation exception; it happens when your site receives a request that contains a host header that's now found in the ALLOWED_HOSTS setting. Yes, they're annoying, and while it's good to know when this happens, I've found that there will typically be one or two requests that you get frequently (I'm looking at you, request for /azenv.php from ...


Published: 2015-10-18

A custom __date lookup for Django

database django lookups orm postgres python

⚠ Django 1.9 now includes a built-in __date lookup. If possible, you should use that instead of the code below, which doesn't support timezones. In my post last week on date lookups, I ended with a promise to take a look at building a custom django lookup (namely, a __date lookup). Django includes a basic Lookup class, and to build your own lookup expressions, all you really need to do is: Subclass django.db.models.Lookup define a ...


Published: 2015-10-10

Date lookups in Django

database django lookups orm postgres python

A while ago I tweeted out something that I've wanted to see in Django for a very long time, yet have never really taken the time to investigate or implement it: I wish #django had this: M.objects.filter(datetimefield__date=http://t.co/MVFXsN4Ivk(2015, 6, 29)) Has that ever been attempted?— Brad Montgomery (@bkmontgomery) June 29, 2015 Django's ORM has a very rich set of field lookups, but at present, it doesn't support an exact ...


Published: 2015-09-30

Django Admin Filters from ArrayFields

admin array arrayfield django filter postgresql

I've written before about the cool ArrayField support in Django, and this is another such post. In this one, we'll take a look and see how to turn your model's ArrayField values into filters in the admin. To start out, let's assume we have a model that contains a simple title (a CharField) and some keywords (an ArrayField). It might look something like this: from django.db import models class Item(models.Model): title = models.CharField ...


Published: 2015-09-03

Disabling the Forms in Django Rest Framework's Browsable API

api django djangorestframework python restframework

If you're building a RESTful api using django, then you're probably aware of Django Rest Framework. It's a great project that will do a lot of the heavy lifting for you. It's also got this really really nice featur: the browsable api. The browsable api gives you out-of-the box access to view your api, and even to interact with it using some auto-generated forms. This is great during development, because you can quickly see exaclty how ...


Published: 2015-08-30

Webucator: zip, map, and lambda

lambda map programming python tutorial zip

Recently, the folks from Webucator, who have a series of python tutorials got in touch with me about one of my blog posts: Python's zip, map, and lambda. They wanted to turn that article into a tutorial video. I thought that sounded like a pretty cool idea, so if you're into video tutorials, give this a view. And check out some of their other tutorials as well.


Published: 2015-08-26

A django iconbool filter

django filter python

Django's template laguage includes a lot of really useful built-in tags and filters, but sometimes you just need to build your own. There are many reasons why you might want to do this, but I'm lazy, and I like to build filters and tags that let me take shortcuts in the template. Here's one example of a simple filter that let's me be lazy: an iconbool filter. Motivation I really like Font-Awesome, and any time I ...


Published: 2015-04-25

Nice ArrayField widgets with choices and chosen.js

arrayfield django postgresql python

One of the really cool new features in Django 1.8 is the support for Postgres-specific fields. I'm very excited to be able to use things like PostgreSQL arrays or hstore without 3rd-party add-ons. Unfortnately, the default form inputs for ArrayFields are less than stellar. So, in this post I want to explore a few things: a Model who's ArrayField only accepts items from a set of predefined choices a ModelForm that makes use of chosen.js (which ...