Django 错误: 'bool'对象没有属性'__getitem__'

2024-06-25 22:57:11 发布

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

当我在视图中添加一个过滤器时,会出现以下Django错误。

'bool' object has no attribute '__getitem__'

这是视图,如果我删除.filter(Proposal.user == request.user),那么一切正常。另外,如果我打印Proposal.userrequest.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)

我做错什么了?我不知道它引用的是哪个布尔对象。你的帮助会大有帮助的!谢谢!


Tags: pyself视图returntitlemodelsresponserequest
2条回答

您有两个=正在丢弃代码。

更改为:

response['proposal_list'] = Proposal.objects.all().filter(Proposal.user=request.user)

对于filter()参数,应该使用单个=符号:

替换:

.filter(Proposal.user == request.user)

使用:

.filter(user=request.user)

注意,您还可以省略Proposal.,在这里只使用user

此外,不需要all(),因为您在使用filter()之后:

response['proposal_list'] = Proposal.objects.filter(user=request.user)

相关问题 更多 >