django实现 条件or 语句查询

1.django Q(a)|Q(b)来实现 sql where a or b 功能

2.Q(Name__contains=sqlstr) 这句的意思是  sql  like'%sqlstr%'

3.如果filter()函数中有逗号,是代表WHERE AND 的意思

首先要导入Q函数:

from django.db.models import Q


具体代码:

def assets(request):
    error = False
    if 'q' in request.GET:
         query = request.GET['q']
         if not query:
             error = Ture
         else:
              qset = (
                  Q(=query)|
                  Q(=query)|
                  Q(=query)|
                  Q(=query)
                    )
         servers = machine.objects.filter(qset)
         render_to_response(,{:servers})
    servers = machine.objects.all()
    render_to_response(,{:servers,:error})