pyton全栈开发(92天)——坚持的第9天

学这个我是从后面的项目教学开始学的,这部分是昨天学的今天记录下,之前学的也要慢慢的补齐来了

一、展示qq、name、sourcec、consult  这些字段

前端代码:

后端传过来admin_class类 #CustomerAdmin

<thead>
                <tr>
                    {% for column in admin_class.list_display %}
                    <th>{{column}}</th>
                    {% endfor %}
                </tr>
</thead>

二、展示下面的内容

前端代码:as 用一个变量接收自定义表签里面函数返回的值

通过自定义标签tag.py里面定义个函数get_query_sets,他是返回了model里面的数据,然后在利用build_table_raw

函数去build_table_raw里根据obj去找字段对应的值

<tbody>
    {% get_query_sets admin_class as query_sets %}
    {% for obj in query_sets %}
    <tr>
        {% build_table_raw obj admin_class %}
    </tr>
    {% endfor %}
</tbody>

tags.py文件代码:

@register.simple_tag
def get_query_sets(admin_class):
    """

    :param admin_class: CustomerFollowUpAdmin
    :return: 返回表里的所有数据
    """
    return admin_class.model.objects.all()

@register.simple_tag
def build_table_raw(obj,admin_class):
    """

    :param obj: admin_class.model.objects.all()
    :param admin_class: CustomerAdmin
    :return:对应字段的值
    """
    raw_ele = ""
    for column in admin_class.list_display:
        #获取该类内指定字段的信息
        field_obj = obj._meta.get_field(column)
        if field_obj.choices:
            #获取字段choices里的中文值
            column_data = getattr(obj,"get_%s_display" %column)()
        else:
            column_data = getattr(obj,column)
        raw_ele+="<td>%s</td>" %column_data


    return mark_safe(raw_ele)

嗯这个思路目前写得不是很好

                                                                     一条薛定谔的咸鱼         

猜你喜欢

转载自www.cnblogs.com/venvive/p/11291902.html