一、扩展auth_user from django.contrib.auth.models import User,AbstractUser class UserInfo(AbstractUser): tel = models.CharField(max_length=32) setting配置 AUTH_USER_MODEL = 'app01.UserInfo'
1.根据str,拿字段对象,取中文 val = self.model._meta.get_field(field).verbose_name 2.模型名称,app名称 model_name = self.model._meta.model_name app_lable = self.model._meta.app_label 3.判断是否可调用 if callable(field): val = field(self, header = True) 4.字符串找对象得属性,反射 val = getattr(data, field) 5.返回标签 from django.utils.safestring import mark_safe return mark_safe("<input id='choice' type='checkbox'>") 6.插入数组[] temp.append(ModelStark.checkbox) temp.extend(self.list_display) 7.反向解析,含正则 _url = reverse("%s_%s_delete" % (app_label, model_name), args=(obj.pk,)) _url = reverse("%s_%s_add" % (app_label, model_name)) 8.复选框 $('#choice').click(function () { if($(this).prop('checked')){ $('.choice_item').prop('checked',true) }else{ $('.choice_item').prop('checked',false) } })
1.判断用户是否配置,配置才显示search框, get查询 search_fields = ['title', 'price'] 显示key_words{{ showlist.config.key_words }} {% if showlist.config.search_fields %} <form action="" class="pull-right"> <input type="text" name="q" value="{{ showlist.config.key_words }}">
<button>submit</button> </form> {% endif %} 2.Q对象 # 获取search得Q对象 search_connection = self.get_search_condition(request) # print("connection:",search_connection) # connection: (or: ('title__contains', '3'), ('price__contains', '3')) # 筛选当前表得全部数据 data_list = self.model.objects.all().filter(search_connection) 3.Q查询 两种方式,一种能够放str,就是下面这种,一种放字段; def get_search_condition(self, request): key_words = request.GET.get('q', "") self.key_words = key_words # self.search_fields ['title','price'] from django.db.models import Q search_connection = Q() if key_words: search_connection.connector = "or" for search_field in self.search_fields: search_connection.children.append((search_field+"__contains", key_words)) return search_connection 4.模糊查询 (title__contains)(price__contains) search_connection.children.append((search_field+"__contains", key_words))