首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >'Q‘对象没有属性'order_by'-Django

'Q‘对象没有属性'order_by'-Django
EN

Stack Overflow用户
提问于 2018-08-14 04:24:29
回答 2查看 3.5K关注 0票数 1

我正试图在我的个人资料页面中包括一个搜索字段。它适用于某些模块字段。我的问题是当我按属性使用订单时(如果我错了,请纠正我)。

我有个模特

代码语言:javascript
运行
复制
class employee(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    email = models.EmailField(max_length=50)
    gender = models.CharField(max_length=1,choices=(('M','Male'), 
    ('F','Female')),blank=True) 
    age = models.PositiveIntegerField(blank=True, null=True)
    salary = models.CharField(blank = True,max_length=50)

    def __str__(self):
        return self.user.username 

和查询

代码语言:javascript
运行
复制
def view_profile(request):
employees = employee.objects.all()
query = request.GET.get("q")
if query:
    employees = employee.objects.filter(
        Q(last_name__icontains=query)|
        Q(first_name__icontains=query)|
        Q(gender__icontains=query)|
        Q(email__icontains=query)|
        Q(age__icontains=query).order_by('-id')
        ).distinct()
args= {'user':request.user,'employees':employees}
return render(request,'profile.html',args)  

我发现了一个错误:

代码语言:javascript
运行
复制
'Q' object has no attribute 'order_by'  

当我在用户名上搜索字段时,我想知道另一个小错误,我得到的是这种类型的错误:

代码语言:javascript
运行
复制
Q(user__icontains=query)
Related Field got invalid lookup: icontains

请提供任何关于如何排除故障的建议或我可以阅读的任何文档。对于上述任何错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-14 05:00:31

这是个简单的错误。对位术是错误的。换到,

代码语言:javascript
运行
复制
if query:
    employees = employee.objects.filter(
        Q(last_name__icontains=query) |
        Q(first_name__icontains=query) |
        Q(gender__icontains=query) |
        Q(email__icontains=query) |
        Q(age__icontains=query)).order_by('-id').distinct()
票数 3
EN

Stack Overflow用户

发布于 2018-08-14 06:21:32

第一个错误是一个简单的错误。

第二个问题是获取数据的问题。

用于字符串字段而不是相关字段的图标

它可以写成这样:

代码语言:javascript
运行
复制
Q(user__in=query)

或者类似的东西

代码语言:javascript
运行
复制
Q(user__username__icontains=query_string)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51833685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档