? 下载体彩云南十一选五:做一个简单的app多少钱 - ◆昨天云南十一选五开奖◆
  • 特朗普让俄重返G7遭5国反对 唯独安倍表态我理解 2019-03-14
  • 2018年军队院校报考指南 军校在山西省计划招生396人 2019-03-14
  • 你知道端午节的来历吗? 2019-03-13
  • 中外藏学专家齐聚西藏畅谈古象雄文化 2019-03-13
  • 自治区明确新生儿疾病筛查两项目价格 2019-03-07
  • 中美科学家在三峡地区发现世界最早动物足迹化石 2019-01-27
  • 百公里加速仅3.4s!宝马全新M5于3月22日上市 2018-12-12
  • 下载体彩云南十一选五:admin

    昨天云南十一选五开奖 www.wahbn.com 小说:做一个简单的app多少钱作者:龙王更新时间:2019-03-19字数:85181

    蓝银草适时发挥,唐三轻松地将朱竹清扯离原位,与戴沐白一起扯到一旁。而京灵和黄远也在他的控制下,直接飞向了另一名还在被控制中的象甲宗弟子。

    关于事业单位兼职兼薪

    忽地想起件事,胖妞道:“对了,我昨天不是和你说,王中军打电话来想要再和我们合作,以前拍的sIng的戏份也想继续用,你给他答复了么?”
    听得枪声响起,里面的一群鬼子在几个鬼子军曹的吆喝下,纷纷朝外面跑来,一小队柳如叶的手下立即向仓库门口的鬼子工事发起了攻击,在狙击手和迫击炮的掩护下,工事上的那些鬼子还没来得及开火,就纷纷被爆头和炸死炸伤,七八个特种兵冲进了工事内,里面剩下来的那些鬼子兵端起刺刀要来拼刺刀,但迎面就是一阵手枪弹雨,打得他们全身都是窟窿眼儿。

    但赵永福他们早就对鬼子的这种近乎自杀性冲锋看得多了,几个阻击手和控制客栈二楼制高点的机枪手配合默契,没几分钟就将这批鬼子敢死队全部打死在距离客栈不到一百米的地方,鬼子敢死队成员这次真死光光了。

    kingadmin设计开发

    4.4.根据list_display配置生成数据列表

    (1)kingadmin/views.py

    ?

    ?(2)kingadmin/templates/kingadmin/table_obj_list.html

    通过自定义的admin_class类,循环出list_display所有的列

    ?

    {#kingadmin/templates/kingadmin/table_obj_list.html#}
    
    {% extends "kingadmin/index.html" %}
    
    {% block right-content-container %}
    <h2 class="page-header">app</h2>
    
    <div>
            {{ querysets }}
            <table class="table table-striped">
                <thead>
                    <tr>
                        {% for column in admin_class.list_display %}
                            <th>{{ column }}</th>
                        {% endfor %}
    
                    </tr>
                </thead>
                <tbody>
    
                </tbody>
            </table>
    </div>
    
    {% endblock %}

    ?

    ?

    (3)自定义模板标签

    kingadmin下创建python package "templatetags",再新建kingadmin_tags.py

    # kingadmin/templatetags/kingadmin_tags.py
    
    from django.template import Library
    from django.utils.safestring import mark_safe
    
    register = Library()
    
    @register.simple_tag
    def build_table_row(obj,admin_class):
        """生成一条记录的html element"""
    
        ele = ""
        for column_name in admin_class.list_display:
            #通过反射获取列的数据,两个参数,一个是object,一个是列名
            column_data = getattr(obj,column_name)
            td_ele = "<td>%s</td>"%column_data
            ele += td_ele
    
        return mark_safe(ele)

    ?

    (4)table_obj_list.html

    首先要导入:{% load kingadmin_tags%}

    然后使用自定义模板标签:<tr>{% build_table_row obj admin_class %}</tr>

    使用的时候需要传两个参数进去

    {#kingadmin/templates/kingadmin/table_obj_list.html#}
    
    {% extends "kingadmin/index.html" %}
    {% load kingadmin_tags %}
    
    {% block right-content-container %}
    <h2 class="page-header">app</h2>
    
    <div>
            {{ querysets }}
            <table class="table table-striped">
                <thead>
                    <tr>
                        {% for column in admin_class.list_display %}
                            <th>{{ column }}</th>
                        {% endfor %}
    
                    </tr>
                </thead>
                <tbody>
                    {% for obj in querysets %}
                        <tr>{% build_table_row obj admin_class %}</tr>
                    {% endfor %}
                    
                </tbody>
            </table>
    </div>
    
    {% endblock %}

    ?现在访问就可以看到对应列的数据了,但是status显示的是“0”,“1”,我们想要的是“未报名”,“已报名”,还有source,contact_tapy

    ?

    ?

    ?

    ?(5)修改kingadmin_tags.py

    因为有的字段有choices,有的字段没有choices,需要添加一个判断

    ?

    ? ? models.CustomerInfo._meta.fields? ?获取model所有字段的对象

    ? ? models.CustomerInfo._meta.get_field("status")? ?取一个字段的对象

    ? ? get_xxxx_display? ? ? ?显示choices里面的值

    ?

    # kingadmin/templatetags/kingadmin_tags.py
    
    from django.template import Library
    from django.utils.safestring import mark_safe
    
    register = Library()
    
    @register.simple_tag
    def build_table_row(obj,admin_class):
        """生成一条记录的html element"""
    
        ele = ""
        for column_name in admin_class.list_display:
            #获取所有字段对象
            column_obj = admin_class.model._meta.get_field(column_name)
            #字段对象的choices方法,如果有choices,则get_xxx_display
            if column_obj.choices:
                column_data = getattr(obj,"get_%s_display"%column_name)()
            else:
                column_data = getattr(obj,column_name)
    
            td_ele = "<td>%s</td>"%column_data
            ele += td_ele
    
        return mark_safe(ele)

    现在访问页面

    ?

    4.5.添加过滤功能

    ?

    ?(1)kingadmin/views.py

    # kingadmin/templatetags/kingadmin_tags.py
    import datetime
    
    from django.template import Library
    from django.utils.safestring import mark_safe
    
    register = Library()
    
    @register.simple_tag
    def build_filter_ele(filter_column,admin_class):
        filter_ele = "<select name="%s">"%filter_column
        column_obj = admin_class.model._meta.get_field(filter_column)
        try:
            for choice in column_obj.get_choices():
                option = "<option value="%s">%s</option>"%choice
                filter_ele += option
    
        except AttributeError as e:
            #get_internal_type():获取字段属性
            #因为时间的过滤方式是固定的(今天,过去七天,一个月.....),而不是从后台获取的
            if column_obj.get_internal_type() in ("DateField","DateTimeField"):
                time_obj = datetime.datetime.now()
                time_list = [
                    ["","--------"],
                    [time_obj,"Today"],
                    [time_obj - datetime.timedelta(7),"七天内"],
                    [time_obj.replace(day=1),"本月"],
                    [time_obj - datetime.timedelta(90),"三个月内"],
                    [time_obj.replace(month=1,day=1),"YearToDay(YTD)"],     #本年
                    ["","ALL"],
                ]
    
                for i in time_list:
                    option = "<option value="%s">%s</option>" %(i[0],i[1])
                    filter_ele += option
    
        filter_ele += "</select>"
    
        return mark_safe(filter_ele)

    (2)table_obj_list.html

     <div>
                <form>
                    {% for filter_column in admin_class.list_filter %}
                        {% build_filter_ele filter_column admin_class %}
                    {% endfor %}
                    <input type="submit" value="过滤">
                </form>
            </div>

    ?访问页面

    ?

    接下来把数据返回到前端

    ?

    (3)kingadmin/views.py

    def get_filter_result(request,querysets):
        filter_conditions = {}
        #获取过滤的字段
        for key,val in request.GET.items():
            if val:
                filter_conditions[key] = val
        #返回过滤后的数据
        return querysets.filter(**filter_conditions),filter_conditions
    
    
    @login_required
    def table_obj_list(request, app_name, model_name):
        """取出指定model里的数据返回给前端"""
        #拿到admin_class后,通过它找到拿到model
        admin_class = site.enable_admins[app_name][model_name]
        querysets = admin_class.model.objects.all()
        querysets,filter_conditions = get_filter_result(request,querysets)
        admin_class.filter_conditions = filter_conditions
        return render(request, "kingadmin/table_obj_list.html",{"querysets":querysets,"admin_class":admin_class})

    (4)kingadmin_tags.py

    当选择过滤条件后,给对应值添加选中状态? selected=selected

    ?

    现在通过时间过滤会报格式不正确的错误

    ?

    ?修改时间过滤的格式

    ?现在不报错了,但并没有过滤出数据

    ?

    ?因为其它条件过滤的时候值是等于,但是根据时间过滤应该是大于等于才对

    ?

    ?修改kingadmin_tags.py

    ?

    ?

    ?

    ?

    代码已同步??github下载? ?(num4 根据list_display配置生成数据列表和添加过滤功能)

    ?

    编辑:丁帝成道

    发布:2019-03-19 01:05:17

    当前文章://www.wahbn.com/2018hgcztzoki2/index.html

    2018最新挂机项目 形容赚钱容易的成语 【本钱本色 有没有打码赚钱的软件 免费网上挂机赚钱 手机赚钱十大方法 淘宝客赚的佣金多少钱 花生日记首次发圈

    19235 28316 77876 66540 18038 4932890548 19065 46217

    我要说两句: (0人参与)

    发布
  • 特朗普让俄重返G7遭5国反对 唯独安倍表态我理解 2019-03-14
  • 2018年军队院校报考指南 军校在山西省计划招生396人 2019-03-14
  • 你知道端午节的来历吗? 2019-03-13
  • 中外藏学专家齐聚西藏畅谈古象雄文化 2019-03-13
  • 自治区明确新生儿疾病筛查两项目价格 2019-03-07
  • 中美科学家在三峡地区发现世界最早动物足迹化石 2019-01-27
  • 百公里加速仅3.4s!宝马全新M5于3月22日上市 2018-12-12