Django的项目---员工管理

Django的项目---员工管理,第1张

Django的项目---员工管理

1 正则表达式知识点:

# 在urls.py中的path下,我们可以利用的正则表达式来代表提交的id
  path('depart//edit/', views.depart_edit),

 # 这个nid就可以作为参数了,在相应的views.py下要这么写

def depart_edit(request, nid):
    # (1)首先是要获取要编辑的部门的id
    init_title = models.Department.objects.filter(id=nid).first()
    # print(title)
    # (2)转到新页面进行编辑
    if request.method == "GET":
        return render(request, "depart_edit.html", {"init_title": init_title})

    edit_title = request.POST.get("title")
    models.Department.objects.filter(id=nid).update(title=edit_title)
    # (3)提交后重定向
    return redirect("/depart/list/")

2 模版和继承是为了解决冗余的html代码,提升代码的复用能力,具体意思如下:

# 首先要创建一个公用的模版(比如具有同一个导航栏、css、js等样式的代码),如创建layout.html将公用代码放入,在中间部分键入如下代码。那么之后我们想复用的时候就只需要extends方法来替代{% block content %} {% endblock %}的内容即可。


        {% block css %} {% endblock %}

{#中间部分#}

        {% block content %} {% endblock %}

# 这里给出例子,创建代码为空的test.html来进行测试。

# 先导入公用的模版文件layout.html
{% extends 'layout.html' %}

# 输入替代的内容
{% block content %}
    首页
{% endblock %}

# 事实上这是种通用的方法,也可以用来替代js的代码。

3  实例:将原来的depart_list中间部分代码替代掉block content部分,和原有效果一样。这就是模版继承了。

4  现在是用户信息列表的创建:

# 如下,create_time因为是属于DateTimeField(),数据表 *** 作后,是属于datetime类型,所以要使用专属于这种方法的转化字符串方式。

# DateTimeField()类型的数据转化成字符串方法如下,即使用datetime转字符串方法,也就是下面的datetime.strftime("%Y-%m-%-%d-%H-%M"),显然括号内是年月日时分秒。按需给出。

# 重点:

(1)因为要弄到前台去进行数据渲染,而对于模版语言来说,前台是不允许对函数加括号进行调用的,例如create_time.strftime(),这个括号是不需要加的【尽管create_time.strftime这种写法在前端中是错误的。那么前端的写法要用下面的方式:create_time | date:"Y-m-d H:i:s"】------------------------------这是规定,不用多想。

 

(2)如下面的数字没有实际含义,是因为在原始的代码循环中,前者我们使用的是obj.gender直接取得是表中的数据,因此没有关联对应的性别含义,解决方法是使用obj.get_gender_display()来取到数字对应的性别,同时注意到前端模版语言不允许用括号调用,因此在前端使用为obj.get_gender_display;后者的部门因为是属于外键,Django自身就给了一个方法,直接将原始的depart外键作为一个链接到部门表的对应,因此可以直接depart.title可以取到相应的值。结果如下:

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5701131.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存