
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显示注册表的内容————————
登陆密码设置参考
http://www.cnblogs.com/ujq3/p/8553784.html