我访问管理界面并尝试在django中添加支持用户。这是一个带有用户名和电子邮件的表单。表单数据已成功过帐。成功发布请求后,我必须重定向到
127.0.0.1:8000/管理员/授权/用户/
. 然而,在
127.0.0.1:8000/添加\u支持\u用户
如果用户已经存在,则url将如下更改
127.0.0.1:8000/add\u support\u user/add\u support\u user
我再次请求,如果用户已经存在,它是这样的
127.0.0.1:8000/add\u support\u user/add\u support\u user/add\u support\u user
(每次追加)
support_User_form
当创建新用户时,url会这样更改
127.0.0.1:8000/add\u support\u user/add\u support\u user
所以它显示了500个错误页面
'127.0.0.1:8000/add\u support\u user/add\u support\u user'
不存在
error_page
. 我在这里犯了什么错误?
URL。PY公司
url(r"^add_support_user/", AddSupportUserView.as_view(), name = 'support_user'),
意见。PY公司
class AddSupportUserView(CsrfExemptMixin, View):
def get(self, request):
form_class = AddSupportUserForm
return render(request, 'add_support_user.html', {
'form': form_class,
})
def post(self, request):
form_class = AddSupportUserForm
username = request.POST.get('username')
email = request.POST.get('email')
try:
user_obj = User.objects.get(username=username)
return render(request, 'add_support_user.html', {'errors': 'User already exits', 'form': form_class})
except User.DoesNotExist:
user_obj = User.objects.create_user(username=username, email=email, is_staff=True,
is_superuser=False)
user_obj.set_password(email)
user_obj.save()
group_obj = Group.objects.get(name='support_group')
user_obj.groups.add(group_obj)
return HttpResponseRedirect('/admin/auth/user/')
更改\u列表。HTML
{% extends "admin/change_list.html" %} {% block object-tools-items %} {{
block.super }}
<li>
<a href="{% url 'support_user' %}" class="grp-state-focus addlink">Add
Support User</a>
</li>
{% endblock %}
添加\u SUPPORT\u用户。HTML
{% extends 'admin/base.html' %}{% block content %}
<h1>Add Support User</h1>
<form role="form" action="add_support_user/" method="post">
{% csrf_token %}
<label style="color:red;">*{{errors}}</label>
<table>
{% for field in form %}
<tbody>
<tr>
<td>
<label for="{{ field.label }}" style="display:inline-
block;vertical-align:middle">{{ field.label_tag }}</label>
</td>
<td>
{{ field }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
<br>
<input style="float:left;" type="submit" value="Save" class="default"
name="_save">
</form>
{% endblock %}