我还需要一个登录表单字段来登录django admin。我重写了AdminSite.login_form
CODE:forms.py
from django.contrib.admin.forms import AdminAuthenticationForm
from django import forms
from django.contrib.admin.sites import AdminSite
class ModifiedForm(AdminAuthenticationForm):
auth_fact = forms.CharField(max_length=64,required=False)
AdminSite.login_form = ModifiedForm
然后我渲染了这个, 代码:views.py
def login_test(request):
if request.method == "POST":
form = ModifiedForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
auth_fact= form.cleaned_data['auth_fact']
return render_to_response('admin/login.html',{'form':ModifiedForm}
我在templates / admin / login.html
中创建了一个模板<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p>Login Page</p>
<div class="row-fluid">
<div class="span12">
<form action="" method="POST">{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<p style="margin-left:7%;"><small style="color: red;">example:product name,mfg date,exp date,batch no.</small></p>
<input style="margin-left:10%" class="btn btn-primary" type="submit" name="release" value="Update Product Details "/>
</form>
</div>
</div>
</body>
</html>
一切正常,我可以提交登录表单。但我将我重定向到页面:
http://example.com/accounts/profile/
我发现找不到页面错误,但如果将http://excample.com/admin放入网址,则会显示我已登录,我可以看到管理网站。
基本上我可以登录但不会将我重定向到管理页面。
对此有任何解决方法....
答案 0 :(得分:1)
将settings.LOGIN_REDIRECT_URL设为/admin/
:
默认值:'/ accounts / profile /'
登录后重定向请求的URL contrib.auth.login视图没有下一个参数。
或者您可以将next
参数发送到login view。