使用django跟踪用户登录

时间:2012-06-08 12:30:34

标签: django django-registration

我正在使用内置登录模块在我的网站上执行登录

url(r'^login/$', 'django.contrib.auth.views.login', {'extra_context': {'page_name': 'login'}),

这是我登录表单的下一个操作

<input type="hidden" name="next" value="/redirect/">

在注册过程中,我为用户创建了一个小型跟踪代码:

host = request.META.get('HTTP_X_FORWARDED_FOR','') or request.META.get('REMOTE_ADDR')
if tid == '0':
    import os, binascii
    tid = binascii.hexlify(os.urandom(6))
ut = UserTracking.objects.create(user=user, username=username, tracking_id=tid, remote_host=host, action='register')
ut.save()
variables = RequestContext(request, {'username': form.cleaned_data['username'], 'email': form.cleaned_data['email'], 'message': message, 'tid': tid})
return render_to_response('registration/register_success.html', variables)

register_success.html我使用jquery插件将我的跟踪代码保存到用户的电脑中,如下所示:

$.jStorage.set('tid', '{{ tid }}');

如何将此代码添加到我的登录表单并使用用户名和密码发送到我的views.py

1 个答案:

答案 0 :(得分:1)

您可能需要自定义登录视图。

  1. 添加您的登录视图:

    url(r'^ login / $','myapp.account.views.login',{'extra_context':{'page_name':'login'})

  2. 然后在您的myapp / account / views.py中添加:

    def login(request, template_name='logintemplate.html'):
    
        if (request.POST):
            username = request.POST.get('username', None)
            password = request.POST.get('password', None)
            tracking_code = request.POST.get('tracking_code', None)
            user = authenticate(username=username, password=password)
    ......
        if user:
            # your custom code here
    ......
    

    并在logintemplate.html中将跟踪代码添加到登录表单中。