まず、ユーザー名の URL ルール:
url(r'^(?P<username>[-\w]+)/$', 'membership.views.profile', name='profile'),
ユーザー名が既存の URL ルールと競合しないようにするのは少し難しいです。
私が通常これを処理する方法は、URL に一意性を追加することです。
url(r'^user/(?P<username>[-\w]+)/$', 'membership.views.profile', name='profile'),
プロファイルの URL をユーザー名で開始する必要がある場合は、https ://stackoverflow.com/a/2094270/884453 のような方法を使用して URL を取得し、ユーザー名が両方とも一意であることを確認してください。他のユーザー名およびルートに対して
編集
私がこれを書いているとき、誰かがより理にかなっているバリデーターのクールなアイデアを投稿しました。
一意性をチェックするために使用from django.core.urlresolvers import resolveすることは素晴らしい解決策です
from django.core.exceptions import ValidationError
from django.core.urlresolvers import resolve
def validate_unique_resolve(value):
urlroute = True
try:
urlroute = resolve(path, urlconf)
except urlresolvers.Resolver404:
urlroute = False
if urlroute != False :
raise ValidationError(u'%s is a reserved url pattern' % value)