django - 總結 - CRM - 知識點

一、擴展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))
相關文章
相關標籤/搜索