【银角大王——Django课程——用户表的基本操作2】

发布于:2024-05-05 ⋅ 阅读:(28) ⋅ 点赞:(0)

编辑用户按钮

  1. 点击编辑,跳转到编辑页面(将编辑的ID携带过去)

代码如下:

urlpatterns = [
    #用户编辑
    path('user/<int:nid>/edit/',views.user_edit),
]
  1. 编辑页面(默认数据,根据id获取并设置到页面中)
    (1)提交
    (2)错误提示
    (3)数据校验
    (4)在数据库更新

#编辑用户
def user_edit(request,nid):
    # 根据ID去数据库获取要编辑的那一行数据
    row_object = models.UseInfo.objects.filter(id=nid).first()


    if request.method=='GET':
        # #根据ID去数据库获取要编辑的那一行数据
        # row_object=models.UseInfo.objects.filter(id=nid).first()
        # 将数据显示出来
        form=UserModelForm(instance=row_object)
        return render(request,'user_edit.html',{'form':form})


    else:
        # #拿到对象
        # row_object=models.UseInfo.objects.filter(id=nid).first()
        #不新增数据,将用户提交的数据新修改到对应的数据项
        #instance传递用户提交的数据
        form= UserModelForm(data=request.POST,instance=row_object)
        #数据校验
        if form.is_valid():
            #添加数据
            form.save()
            return redirect('/user/list/')
        return render(request,'user_edit.html',{"form":form})


  1. HTML页面
{% extends 'layout.html' %}
{% block content %}
    <div class="container">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h3 class="panel-title"> 编辑用户 </h3>
            </div>
            <div class="panel-body">
<!--              novalidate关掉页面校验  -->
                <form method="post" novalidate>
<!--                    隐含参数-->
                      {% csrf_token %}
                      {% for field in form %}
                              <div class="form-group">
                                <label >{{ field.label }}</label>
                                  {{ field }}
                                  <span style="color:red;">{{field.errors.0}}</span>
        <!--                        <input type="text" class="form-control"  placeholder="标题" name="user">-->
                              </div>
                      {% endfor %}

                      <button type="submit" class="btn btn-primary">提 交</button>
                </form>
            </div>
        </div>
    </div>




{% endblock %}
  1. 编辑演示
    请添加图片描述

删除按钮

  1. 添加路径与函数的关系
urlpatterns = [

    #用户删除
    path('user/<int:nid>/delete/', views.user_delete),
]
#用户删除函数

def user_delete(request,nid):
    models.UseInfo.objects.filter(id=nid).delete()
    return redirect('/user/list/')
  1. 删除演示
    请添加图片描述

入职日期——不显示时分,只显示年月日——使用DataField函数不使用DateTimeField

修改models记得重新执行命令,更新数据库结构

python manage.py makemigrations
python manage.py migrate

在这里插入图片描述

修改前

在这里插入图片描述

修改后

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到