如何将一个kwarg / arg从auth_views.login传递到django中不同视图的url参数

时间:2017-02-03 01:27:12

标签: django django-models django-forms django-views django-crispy-forms

我目前正在使用 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'),
                    ),
             )

或者我应该只做我自己的自定义视图?大声笑

1 个答案:

答案 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}))