Maybe instead of this, make a unique together constraint in the DB?