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、效果:

 

posted @ 2023-04-26 13:26  侬侬发  阅读(63)  评论(0编辑  收藏  举报