Django4全栈进阶之路17 项目实战(用户管理):user_add.html用户新增画面设计
1、模块:
{% extends 'base.html' %} {% block content %} <div class="card mt-3"> <div class="card-header">新增用户</div> <div class="card-body"> <form method="post"> {% csrf_token %} {% if error_msg %} <p class="error">{{ error_msg }}</p> {% endif %} <div class="form-group"> <label for="username">用户名:</label> <input type="text" id="username" name="username" required class="form-control"> </div> <div class="form-group"> <label for="password">密码:</label> <input type="password" id="password" name="password" required class="form-control"> </div> <div class="form-group"> <label for="email">邮箱:</label> <input type="email" id="email" name="email" required class="form-control"> </div> <button type="submit" class="btn btn-primary btn-sm">保存</button> <a href="{% url 'user_list' %}?success=true" class="btn btn-secondary btn-sm">返回</a> </form> </div> </div> </div> {% endblock %}
2、视图:
@login_required
def user_add_view(request):
if request.method == 'POST':
# 获取表单数据
username = request.POST.get('username')
password = request.POST.get('password')
email = request.POST.get('email')
# 判断是否已经存在
if User.objects.filter(username=username).exists():
error_msg = '用户已经存在'
return render(request, 'account/user_add.html', {'error_msg': error_msg})
# 验证数据合法性
if not all([username, password, email]):
# 数据不合法,返回错误信息并重新渲染页面
error_msg = '所有字段都不能为空'
return render(request, 'account/user_add.html', {'error_msg': error_msg})
# 保存到数据库
User.objects.create(username=username, password=password, email=email)
# 重定向到用户列表页面
return redirect('user_list')
else:
# GET请求,渲染新增用户的页面
return render(request, 'account/user_add.html')
3、路由:
urlpatterns = [
# ... 其他 URL 模式 ...
path('user/add/', views.user_add_view, name='user_add'),
]
4、效果: