Django 错误:“布尔”对象没有属性“__getitem__”
Posted
技术标签:
【中文标题】Django 错误:“布尔”对象没有属性“__getitem__”【英文标题】:Django Error: 'bool' object has no attribute '__getitem__' 【发布时间】:2014-05-21 11:26:11 【问题描述】:我在视图中添加过滤器时收到以下 Django 错误。
'bool' object has no attribute '__getitem__'
这是视图,如果我删除 .filter(Proposal.user == request.user)
,那么一切正常。此外,如果我打印 Proposal.user
和 request.user
它们是相同的。
# views.py
def my_proposal_list(request):
response =
response['proposal_list'] = Proposal.objects.all().filter(Proposal.user == request.user)
return render(request, "my-proposals.html", response)
这是提案模型。它应该是返回和过滤:
# Models.py
class Proposal(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=50, verbose_name='Name Your Proposal')
description = models.CharField(max_length=200, help_text='Who is this proposal for? What does it do?')
create_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return "%s %s" % (self.title, self.user)
我做错了什么?我不知道它引用的是哪个布尔对象。您的帮助将非常有帮助!谢谢!
【问题讨论】:
【参考方案1】:您应该对filter()
参数使用单个=
符号:
替换:
.filter(Proposal.user == request.user)
与:
.filter(user=request.user)
请注意,您也可以在此处省略 Proposal.
并仅使用 user
。
另外,不需要all()
,因为你之后使用的是filter()
:
response['proposal_list'] = Proposal.objects.filter(user=request.user)
【讨论】:
就是这样!这总是我以前尝试过的东西(但肯定做错了)。谢谢!【参考方案2】:你有双重=
正在抛出你的代码。
改成:
response['proposal_list'] = Proposal.objects.all().filter(Proposal.user=request.user)
【讨论】:
以上是关于Django 错误:“布尔”对象没有属性“__getitem__”的主要内容,如果未能解决你的问题,请参考以下文章
在 Django 中处理 ajax json 对象 - 'QueryDict' 对象没有属性 'read' 错误
Django 错误:“'ChoiceField' 对象没有属性 'is_hidden'”
Django South 错误:AttributeError:'DateTimeField' 对象没有属性'model'`
Django 测试用例错误“WSGIRequest”对象没有属性“会话”
AttributeError:'Manager' 对象在 Django 中没有属性 'get_by_natural_key' 错误?