2014-04-08 2 views
2

내 뷰에 필터를 추가하면 다음 장고 오류가 발생합니다.Django 오류 : 'bool'객체에 '__getitem__'속성이 없습니다.

'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) 

내가 뭘 잘못하고 있니? 내가 어떤 Boolean 객체를 참조하고 있는지 알지 못한다. 당신의 도움이 큰 도움이 될 것입니다! 감사!

답변

3

당신은 filter() 인수 한 = 기호를 사용해야합니다

은 교체 :

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

로 : 당신은 또한 Proposal.을 생략하고 바로 user 여기에 사용할 수 있습니다

.filter(user=request.user) 

참고. 당신은 당신의 코드를 던지고있다 = 더블있어

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

을했다! 그것은 항상 전에 시도한 (그러나 잘못했을 것임) 것이 었습니다. 고맙습니다! –

0

:

또한, 나중에 filter()을 사용하고 있기 때문에 all() 필요가 없다. 에

변경이 :

response['proposal_list'] = Proposal.objects.all().filter(Proposal.user=request.user) 
관련 문제