zoukankan      html  css  js  c++  java
  • Django项目:CRM(客户关系管理系统)--18--10PerfectCRM实现King_admin日期优化

     1 #kingadmin_tags.py
     2 
     3 # ————————06PerfectCRM实现King_admin注册功能获取内存优化处理————————
     4 
     5 # # 因为前端禁止使用下划线开头(_meta.verbose_name ),所以通过后端处理后返回前端。
     6 # from django import template #模板
     7 # register = template.Library() #模板库
     8 #
     9 # @register.simple_tag #Django中利用filter与simple_tag为前端自定义函数的实现方法
    10 # def get_app_name(model_obj):
    11 #
    12 #     # ————————06PerfectCRM实现King_admin注册功能获取内存优化处理————————
    13 #     # return model_obj._meta.verbose_name_plural
    14 #     '''
    15 #      #判断 数据库 里如果有  verbose_name  或者  verbose_name_plural 就 调用  如果都没有 就使用默认的(英文)
    16 #         class Meta:
    17 #         verbose_name = "04客户信息表"           #在 Django  Admin 里 表名显示中文 但是会加s
    18 #         verbose_name_plural = "04客户信息表"    #在 Django  Admin 里 表名显示中文 不会加s
    19 #     '''
    20 #     model_name = model_obj._meta.verbose_name_plural if model_obj._meta.verbose_name else model_obj._meta.verbose_name_plural
    21 #     if not model_name:
    22 #         model_name = model_obj._meta.model_name
    23 #
    24 #     return model_name
    25     # ————————06PerfectCRM实现King_admin注册功能获取内存优化处理————————
    26 
    27 # ————————06PerfectCRM实现King_admin注册功能获取内存优化处理————————
    28 
    29 # ————————07PerfectCRM实现King_admin显示注册的表————————
    30 #因为前端禁止使用下划线开头(_meta.verbose_name ),所以通过后端处理后返回前端。
    31 from django import template #模板
    32 register = template.Library() #模板库
    33 
    34 @register.simple_tag #Django中利用filter与simple_tag为前端自定义函数的实现方法
    35 def get_model_verbose_name(model_obj):
    36     '''
    37      #判断 数据库 里如果有  verbose_name  或者  verbose_name_plural 就 调用  如果都没有 就使用默认的(英文)
    38         class Meta:
    39         verbose_name = "04客户信息表"           #在 Django  Admin 里 表名显示中文 但是会加s
    40         verbose_name_plural = "04客户信息表"    #在 Django  Admin 里 表名显示中文 不会加s
    41     '''
    42     model_name = model_obj._meta.verbose_name_plural if model_obj._meta.verbose_name else model_obj._meta.verbose_name_plural
    43     if not model_name:
    44         model_name = model_obj._meta.model_name
    45     return model_name
    46 
    47 @register.simple_tag
    48 def get_model_name(model_obj):
    49     return model_obj._meta.model_name
    50 @register.simple_tag
    51 def get_app_name(model_obj):
    52     return model_obj._meta.app_label
    53 # ————————07PerfectCRM实现King_admin显示注册的表————————
    54 
    55 
    56 # ————————09PerfectCRM实现King_admin显示注册表的内容————————
    57 from django.utils.safestring import mark_safe #使用mark_safe函数标记后,django将不再对该函数的内容进行转义
    58 @register.simple_tag
    59 def build_table_row(admin_obj,obj):#通过kingadmin_tags在后台处理 再传到前端
    60     row_ele = "" #为了生成一整行返回前端
    61     if admin_obj.list_display:#如果不为空,有在crm/kingadmin.py注册site.register(models.Customer,CustomerAdmin)
    62         #循环所有 要显示 的字符串 进行反射 展示 字段
    63         for column in admin_obj.list_display: #循环base_admin里class BaseAdmin下list_display = ()
    64             column_obj = obj._meta.get_field(column)#遍历获取  传进的参数对象
    65 
    66             if column_obj.choices:#判断如果字段有choices属性
    67                 #获取choices的字符串(外健)
    68                 get_column_data = getattr(obj,"get_%s_display" % column) #反射,传进的参数对象,拼接字段
    69                 column_data = get_column_data()#函数,拿到数据
    70             else:
    71                 column_data = getattr(obj, column)#反射,
    72             # ————————10PerfectCRM实现King_admin日期优化————————
    73             if type(column_data).__name__ == 'datetime':
    74                 column_data = column_data.strftime('%Y-%m-%d %H-%M-%S')
    75             # ————————10PerfectCRM实现King_admin日期优化————————
    76 
    77             td_ele = '''<td>%s</td>''' % column_data  #把反射来的值 拼接字符串 生成<td>
    78             row_ele += td_ele    #把 <td>  拼接到上面到空字符串
    79     else:
    80         row_ele +="<td>%s</td>" %obj  #把<td>拼接到上面到空字符串,crm/models.py里 def __str__(self):的返回值
    81     return mark_safe(row_ele) #使用mark_safe函数标记后,django将不再对该函数的内容进行转义
    82 # ————————09PerfectCRM实现King_admin显示注册表的内容————————
    #kingadmin_tags.py

     

    登陆密码设置参考

    http://www.cnblogs.com/ujq3/p/8553784.html

     

  • 相关阅读:
    每日一题
    每日一题
    每日一题
    每日一题
    GitLab 部署
    Golang Web开发之Gin入门
    Golang消息队列之NSQ
    Golang操作Redis
    Golang操作MySQL
    Golang Json数据处理方法
  • 原文地址:https://www.cnblogs.com/ujq3/p/8622763.html
Copyright © 2011-2022 走看看