crm-项目回顾

Posted forjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了crm-项目回顾相关的知识,希望对你有一定的参考价值。

1,querydict用法:

from django.http import QueryDict
def edit_link_tag(self,pk,text):  
        query_str = self.request.GET.urlencode()    # page=2&nid=1  
          params = QueryDict(mutable=True)      #mutable=True让Querydict可以变化
    params[self.config._query_param_key] = query_str 

  return mark_safe(<a href="%s?%s">%s</a> % (self.config.get_change_url(pk), params.urlencode(),text,)) # /stark/app01/userinfo/

2,类里面的迭代功能:def __iter__(self):  

3,在JSON传到html页面的时候,中文也可以显示

ensure_ascii=False

4,通过对象反向找与之关联类名以及所有对象

from django.db.models.fields.reverse_related import ManyToOneRel
if form.is_valid():
                result = {status: False, obj_pk: None, obj_name: None, popbackid: None}
                form_obj=form.save()
                if _popbackid:   #如果add里的popup触发,点击提交后   这里代表已经有popup
                    model_name=request.GET.get(model_name)
                    related_name=request.GET.get(related_name)

                    for re_name in form_obj._meta.related_objects:    #通过这个对象反向找到与之相关联的对象
                        form_model_name=re_name.field.model._meta.model_name  #通过这个对象找到类名
                        _related_name=re_name.related_name    

                        if type(re_name)==ManyToOneRel:
                            field_name=re_name.field_name
                        else:
                            field_name=pk
                        limit_choice_to=re_name.limit_choices_to

                        if model_name==form_model_name and related_name==str(_related_name):
                            is_exists=self.models_class.objects.filter(**limit_choice_to,pk=form_obj.pk).exists()
                            if is_exists:
                                result[status] = True
                                result[obj_name] = str(form_obj)
                                result[obj_pk] = getattr(form_obj,field_name)
                                result[popbackid]=_popbackid

                                return render(request,stark/popresponse.html,{result:json.dumps(result,ensure_ascii=False)})

5,通过Q把类里的字段一起判断,结果是一个键值对

con=Q()
        con.connector=or                          #这里的or是什么
        if seach_name:
            for file in seach_file:
                con.children.append((file,seach_name))

Q对象OR连接
    def public(self,request):
        time_now=datetime.datetime.now().now()  #取到现在的时间
        no_deal=time_now-datetime.timedelta(days=15)
        no_talk=time_now-datetime.timedelta(days=3)
        con1=Q()
        con1.connector=OR‘  #里面的数据用or连接
        con1.children.append((last_consult_date__lt,no_talk))    
        con1.children.append((recv_date__lt,no_deal))
        # con2=Q()
        # con2.children.append((status,2))
        # con=Q()
        # con.add(con1,AND)
        # con.add(con2,AND)
        cust_list=models.Customer.objects.filter(con1,status=2)  #这个的Q对象con1 和status是and连接,但是con1里面是or连接.

 



 



以上是关于crm-项目回顾的主要内容,如果未能解决你的问题,请参考以下文章

项目实战:CRM客户关系管理系统开发

linux项目部署学习 - linux下启动crm项目

白嫖他!悟空CRM项目 ,部署了直接用起来

CRM客户关系管理系统商业项目

如何使用 crm 2011 实现 mvc 4 项目

# Linux crm 运行