搜索Django中的几个colums
问题描述:
所以我得到了一个数据库与几个colums。 我想添加到我的搜索选项来搜索不仅像项目一列。我想再搜索几个colums ..所以搜索将查找Project或ServerName或IP并搜索所有colums或其中的一些。搜索Django中的几个colums
有什么想法? 我试过(Project__icontains = query,ServerName__icontains = query),但它说错了语法。
index.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:
models.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)
答
你可以使用Q objects
从文档:
AQ对象(django.db .models.Q)是一个用于封装colle的对象关键字参数的提示。这些关键字参数在上面的“字段查找”中指定。
一个例子:
posts = serverlist.objects.filter(
Q(Project__icontains=query)|Q(ServerName__icontains=query)
)
完美的答案谢谢 –
不客气。接受答案,如果它是有益的,请:) – efkin
嗨efkin, 你有电子邮件我可以联系你吗? –