Django之十二:模板的继承+用户列表

模板的继承

新建layout.html:

{% load static %}



    
    Title
    
    


    

    
{% block content %}{% endblock %}

index.html

简单的demo,用来测试模板继承

{% extends 'layout.html' %}

{% block content %}
    

首页

{% endblock %}

depart_list.html:

{% extends 'layout.html' %}
{% block content %}
    
部门列表
{% for obj in queryset %} {% endfor %}
ID 名称 操作
{{ obj.id }} {{ obj.title }} 编辑 删除
{% endblock %}

depart_add.html:

{% extends 'layout.html' %}
{% block content %}
    

新建部门

{% csrf_token %}
{% endblock %}

depart_edit.html:

{% extends 'layout.html' %}
{% block content %}
    

修改部门

{% csrf_token %}
{% endblock %}

用户列表:

增加urls.py

path("user/list/", views.user_list),

增加views.py(get_字段_display())

def user_list(request):
    queryset = models.UserInfo.objects.all()
    '''
    使用python语法直接获取想要的数据
    for obj in queryset:
        print(obj.name, obj.create_time.strftime("%Y-%m-%d-%H-%M"), obj.get_gender_display(), obj.depart.title)
    '''
    return render(request, "user_list.html", {"queryset": queryset})

关于获得实际的性别字段:

Django自动封装了一个方法,get_字段_display(),会根据我们在models.py里自定义的元组,
一般形式为(数据库的值,实际想显示的值)。显示数据库的值实际映射的中文。

关于获得关联的表的实际部门名称:

当然可以自己写映射,譬如

temp = models.Department.objects.filter(id=obj.depart_id).first().title

但是Django自动封装了类似一个方法,只要我们在models.py里写了

depart = models.ForeignKey(to="Department", to_field="id", on_delete=models.CASCADE)

那么他会根据id自动去关联的表中获取那一行数据的depart对象

新建user_list.html(模板语法中的日期格式化)

{% extends 'layout.html' %}
{% block content %}
    
用户列表
{% for obj in queryset %} {% endfor %}
ID 姓名 密码 年龄 余额 入职时间 性别 所属部门 操作
{{ obj.id }} {{ obj.name }} {{ obj.password }} {{ obj.age }} {{ obj.account }} {{ obj.create_time|date:"Y-m-d" }} {{ obj.get_gender_display }} {{ obj.depart.title }} 编辑 删除
{% endblock %}

测试

Django之十二:模板的继承+用户列表_第1张图片

你可能感兴趣的:(Django入门,django,python,后端)