From 605d2a237f75a8e490562d65ec79dc3db1609a88 Mon Sep 17 00:00:00 2001 From: Nick Sergeant Date: Thu, 7 Jun 2012 10:20:48 -0400 Subject: [PATCH] Better blog support for users with dashes or underscores in their usernames. --- blogs/middleware.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/blogs/middleware.py b/blogs/middleware.py index 3911c66..23d25d7 100644 --- a/blogs/middleware.py +++ b/blogs/middleware.py @@ -1,6 +1,8 @@ from django.shortcuts import get_object_or_404 from django.contrib.auth.models import User +from annoying.functions import get_object_or_None + class BlogMiddleware: def process_request(self, request): @@ -18,8 +20,15 @@ class BlogMiddleware: if host_s[1] == 'snipt': # nick.snipt.net or nick.snipt.localhost - blog_user = ''.join(host_s[:-2]).replace('-', '_') - request.blog_user = get_object_or_404(User, username__iexact=blog_user) + blog_user = ''.join(host_s[:-2]) + + if '-' in blog_user: + request.blog_user = get_object_or_None(User, username__iexact=blog_user) + + if request.blog_user is None: + request.blog_user = get_object_or_404(User, username__iexact=blog_user.replace('-', '_')) + else: + request.blog_user = get_object_or_404(User, username__iexact=blog_user) else: # blog.nicksergeant.com