-1

私はすべてのユーザーが次のような独自のメインページを持っているブログシステムを持っています。

127.0.0.1/ユーザー名

そして、次の場所にあるすべてのユーザーのログイン画面:127.0.0.1 / username / panel

そして再びここに彼らの管理パネルがあります:127.0.0.1 / username / admin

ログインページ; 私が提出するとき; ユーザーを管理パネルにリダイレクトする必要があります。

しかし、私は現在URLにあるユーザー名に到達する必要があります。正規表現を使用する必要があると思います。しかし、どのように?私は正規表現が苦手です。

これが私の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))
4

2 に答える 2

3

実際には、あなたはすでにユーザー名を持っています:

from django.core.urlresolvers import reverse
return HttpResponseRedirect(reverse('admin', args=[uname]))
于 2012-09-13T15:12:56.803 に答える
1

必要なのは、パラメーターを逆にすることです。

from django.core.urlresolvers import reverse

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(reverse('admin', args=[uname])) #--> ????
    else:
        form = LoginForm()

    return render_to_response('login.html',{'form':form,},context_instance=RequestContext(request))
于 2012-09-13T15:16:16.573 に答える