0

シンプルな受信トレイ メッセージ アプリを作成しようとしていますが、このエラーが何度も発生します。

私はエラーがここを指していることを知っています

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

ビュー.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

@イグナシオ・バスケス・エイブラムス

    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})
4

1 に答える 1

2

できるよ:

if messages.in_response_to :
    m = messages.in_response_to.id
    ...
else:
    ...
于 2013-06-25T10:50:48.063 に答える