在Djang搜索几个专栏

2024-05-14 00:24:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个只有几列的数据库。 我想添加到我的搜索选项,搜索不只是一个列一样的项目。我还想再搜索几列。。因此,搜索将查找Project、ServerName或IP,并搜索所有或少数列

我试过(Project\uu icontains=query,ServerName\uu icontains=query),但它说的语法错误

索引.html:

def get(self, request):
        form = HomeForm()
        query = request.GET.get("q")
        posts = serverlist.objects.all()

        if query:
            posts = serverlist.objects.filter(Project__icontains=query)
        else:
            posts = serverlist.objects.all()
    #    else:

型号.py:

  from django.db import models


class serverlist(models.Model):
    ServerName = models.CharField(max_length = 30)
    Owner = models.CharField(max_length = 50)
    Project = models.CharField(max_length = 30)
    Description = models.CharField(max_length = 255)
    IP = models.CharField(max_length = 30)
    ILO = models.CharField(max_length = 30)
    Rack = models.CharField(max_length = 30)
    Status = models.CharField(max_length = 30)

Tags: ipprojectgetobjectsmodelsrequestquerylength
1条回答
网友
1楼 · 发布于 2024-05-14 00:24:30

你可以用Q objects

从文档中:

A Q object (django.db.models.Q) is an object used to encapsulate a collection of keyword arguments. These keyword arguments are specified as in “Field lookups” above.

举个例子:

posts = serverlist.objects.filter(
     Q(Project__icontains=query)|Q(ServerName__icontains=query)
)

相关问题 更多 >