gpt4 book ai didi

python - 使用 django.views.login 时如何传递一个额外的参数来验证函数?

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:44 25 4
gpt4 key购买 nike

我有一个像这样的认证后端

class Backend(object):

def authenticate(self, username=None, password=None):
# Do stuff

我的 url 处理程序看起来像这样

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

登录表单看起来像这样(标准表单,你可以跳过这个)

{% if not form.username.errors %}
<input id="id_username" name="username" type="text" class="form-control" placeholder="Username (admin)" autofocus>
{% else %}
<div class="form-group has-error">
{% for error in form.username.errors %}
<label class="control-label" for="id_username">{{ error }}</label>
{% endfor %}
<input id="id_username" name="username" type="text" class="form-control" placeholder="Username (admin)" autofocus>
</div>
{% endif %}
{% if not form.password.errors %}
<input id="id_password" name="password" type="text" class="form-control" placeholder="Password (admin)" autofocus>
{% else %}
<div class="form-group has-error">
{% for error in form.password.errors %}
<label class="control-label" for="id_password">{{ error }}</label>
{% endfor %}
<input id="id_password" name="password" type="text" class="form-control" placeholder="Password (admin)">
</div>
{% endif %}

我需要将一个额外的参数(例如国家/地区)传递给可能来自表单的身份验证函数。新的 authenticate 函数应该是这样的

def authenticate(self, username=None, password=None, country=None):

如何做到这一点?

最佳答案

您需要子类化 AuthenticationForm,并覆盖 clean 方法,以便它使用您的额外参数调用 authenticate

然后,在您的 urls.py 中,将您的 authentication_form 传递给登录 View 。

关于python - 使用 django.views.login 时如何传递一个额外的参数来验证函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38729330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com