我有博客系統,這是每個用戶都有自己的主頁像;django - 如何到達用戶名在url
127.0.0.1/username
,每個用戶的登錄屏幕位於:127.0.0.1/username/panel
,並再次這裏是他們的管理面板:127.0.0.1/username/admin
登錄頁面;當我提交時;它必須將用戶重定向到管理面板。
但我需要到達目前在URL中的用戶名。我想我應該使用正則表達式。但是如何?我對regexp不好。
這裏是我的urls.py:
urlpatterns = patterns('blog.views',
url(r'^blog/(?P<username>[-\w]+)/$',view='index', name='index'),
url(r'^blog/(?P<username>[-\w]+)/post/(?P<postslug>[-\w]+)',view='singlePost', name='view_blog_post'),
url(r'^blog/(?P<username>[-\w]+)/panel/$', view='loguserin'),
url(r'^blog/(?P<username>[-\w]+)/admin/$', view='adminView', name='admin'),
url(r'^blog/(?P<username>[-\w]+)/admin/loggedout/$', view='logout', name='logout'),
url(r'^blog/(?P<username>[-\w]+)/admin/addpost/$', view='addpost',name='addpost'),
url(r'^blog/(?P<username>[-\w]+)/admin/editpost/(?P<post_id>\d+)', view='editPost', name='editpost'),
url(r'^blog/(?P<username>[-\w]+)/admin/delete/(?P<post_id>\d+)', view='delete_post', name='deletePost'),
)
,這裏是我的views.py [登錄部分]:
def loguserin(request,username):
if request.method=='POST':
uname = request.POST['username']
password = request.POST['password']
user = authenticate(username=uname, password=password)
form = LoginForm(request.POST)
if form.is_valid():
if user is not None:
request.session['loggedin']="djangoo"
login(request, user)
return HttpResponseRedirect('/admin/') #--> ????
else:
form = LoginForm()
return render_to_response('login.html',{'form':form,},context_instance=RequestContext(request))
你在哪裏試圖訪問用戶名?當我運行此代碼時,您已經擁有用戶名作爲查看方法 – karthikr
的參數;在提交後重定向到127.0.0.1/admin。 HttpResponseRedirect的bcs。但我需要去127.0.0.1/username/admin – alix
你不能做HTTPResponseRedirect('/%s/admin /'%(username))?你的視圖 – karthikr