get_or_create is an interesting function.  keyword params that are part of the primary key are used for selection; other params are used for default values when a new entry is created.  Explained in the (doc)[https://docs.djangoproject.com/en/dev/ref/models/querysets/#get-or-create]