2013-06-25 32 views
0

我試圖創建一個簡單的收件箱消息應用程序,但我一直遇到此錯誤。Django'NoneType'對象沒有屬性'id'

我知道錯誤指向這裏

if Message.objects.filter(in_response_to=messages.in_response_to): 
    m = messages.in_response_to.id 

我試圖傳達的是,如果他們是在messages.in_response_to的對象。做這個 。我不知道如何解決它,我花了幾個小時努力,有人可以幫我請

錯誤

'NoneType' object has no attribute 'id' 
Traceback: 
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response 
    115.       response = callback(request, *callback_args, **callback_kwargs) 
File "C:\Python27\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view 
    25.     return view_func(request, *args, **kwargs) 
File "C:\mysite\pet\views.py" in read 
    944.   m = messages.in_response_to.id 

views.py

@login_required 
def read(request,id): 
    try: 
     messages = Message.objects.get(pk=id,recipient=request.user.id) 
    except Message.DoesNotExist: 
     return HttpResponseRedirect(reverse('world:Display')) 



    if Message.objects.filter(in_response_to=messages.in_response_to): 
     m = messages.in_response_to.id 
     message = Message.objects.filter(in_response_to=messages.in_response_to).filter(created__lt=messages.created) 

     initial = {} 
     initial.update({'hidden_field': m}) 
     form = NewMessageForm(initial=initial) 
     return render(request,'read.html',{'message':message,'form':form,'m':m}) 
    else: 
     initial = {} 
     initial.update({'hidden_field': messages.id}) 
     form = NewMessageForm(initial=initial) 

     return render(request,'read.html',{'messages':messages,'form':form}) 

模型。

class Message(models.Model): 
    user = models.ForeignKey(User, related_name='sender') 
    recipient = models.ForeignKey(User, related_name='recipient') 
    created = models.DateTimeField(auto_now_add=True) 
    in_response_to = models.ForeignKey('self', null=True, blank=True) 


def __unicode__(self): 
    return self.body 

@Ignacio巴斯克斯 - 艾布拉姆斯

if Message.objects.filter(in_response_to=messages.in_response_to): 
     m = messages.in_response_to.id 
     message = Message.objects.filter(in_response_to=messages.in_response_to).filter(created__lt=messages.created) 

    initial = {} 
    initial.update({'hidden_field': m}) 
    form = NewMessageForm(initial=initial) 
    return render(request,'read.html',{'message':message,'form':form,'m':m}) 

initial = {} 
initial.update({'hidden_field': messages.id}) 
form = NewMessageForm(initial=initial) 

return render(request,'read.html',{'messages':messages,'form':form}) 
+0

爲什麼你認爲所有的信息必須在回答另一個消息? –

+0

@Ignacio Vazquez-Abrams我使用in_response_to將消息關聯在一起 – JackRoster

+0

這不能回答我的問題。 –

回答

2

你可以這樣做: