我目前正在使用 django auth_views.login 将我的用户登录到他们的帐户中。
我需要传递用户的属性,例如pk / username / etc.到我的用户个人资料视图。
我的个人资料网址是:
@Inject()
用户登录后,如何获取其用户属性,例如pk / id / username / etc.传入网址?
我正在使用TDD进行测试,然后才真正推进我的观点。
这是我目前的观点:
url(r'^(?P<pk>[\w.@+-]+)$', ProfileDashboardView , name='dashboard')
我正在为我的用户帐户使用AbstractBaseUser模型,该模型扩展了USER模型并使用该电子邮件作为登录用户名。
我还使用AuthenticationForm作为登录表单和用于样式的松散表单。
我的表单:
@login_required
def ProfileDashboardView(request, name=None):
usr_name = IbkUser.objects.get(name=name)
return render(request, 'profiles/profile_dashboard.html')
,这是我的登录模板:
class LoginAuthenticationForm(AuthenticationForm):
"""
A user login form for registered users.
"""
username = forms.EmailField(label='Email', required=True, widget=forms.TextInput(attrs={'id': 'login_username'}))
password = forms.CharField(label='Password', required=True,widget=forms.PasswordInput(attrs={'id': 'login_password'}))
def __init__(self, *args, **kwargs):
super(LoginAuthenticationForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_id = 'loginForm'
self.helper.form_method = 'post'
self.helper.layout = Layout(
PrependedText('username', "<span class='glyphicon glyphicon-envelope'></span>", active=True),
PrependedText('password', "<span class='glyphicon glyphicon-lock'></span>", active=True),
FormActions(
Submit('submit', 'Submit', css_class ='btn btn-success btn-lg btn-block'),
),
)
或者我应该只做我自己的自定义视图?大声笑
答案 0 :(得分:1)
您需要的是重定向......
from django.shortcuts import redirect
from django.core.urlresolvers import reverse_lazy
def my_login(request)
# your login stuff...
return redirect(reverse_lazy('dashboard',kwargs={'name':request.user.username}))