2017-05-15 11 views
1

これは、localyで動作し、実際にはdjangorestfranewokrデコレータでカバーされているajax関数であることを考慮して、 djangoは何のエラーも記録せず、何かが壊れたときの唯一の情報は500です。あるいは、Djangoはエラーを記録しなければならず、何か問題がありますか?プロダクションではうまくいかないajax djangoビュー関数をデバッグする方法

@api_view(['POST', ]) 
def load_dialog(request): 
    if request.method == 'POST': 
     party_id = request.data['party_id'] 
     ticket_id = request.data['ticket_id'] 
     party = UserProfile.objects.get(pk=party_id) 
     ticket = Ticket.objects.get(pk=ticket_id) 
     try: 
      dialog = Dialog.objects.get(Q(sales=party) | Q(sales=request.user.userprofile)) 
     except Dialog.DoesNotExist: 
      dialog = None 
     if dialog: 
      textbool = None 
      if dialog.sales == request.user.userprofile: 
       textbool = "show" 
      messages = Message.objects.filter(dialog=dialog) 

      s_messages = serializers.serialize('json', messages) 
      s_textbool = json.dumps(textbool) 
      s_dialog_id = json.dumps(dialog.id) 
      data = { 
       'messages': s_messages, 
       'sales': s_textbool, 
       'dialog_id':s_dialog_id, 
      } 
     else: 
      owner = ticket.ownership 
      new_dialog = Dialog.objects.create(buyer=request.user.userprofile,sales=owner,ticket=ticket) 
      textbool = None 
      if new_dialog.sales == request.user.userprofile: 
       textbool = "show" 
      messages = Message.objects.filter(dialog=new_dialog) 
      s_messages = serializers.serialize('json', messages) 
      s_textbool = json.dumps(textbool) 
      s_dialog_id = json.dumps(new_dialog.id) 
      data = { 
       'messages': s_messages, 
       'sales': s_textbool, 
       'dialog_id':s_dialog_id, 
      } 
    else: 
     error = "Fuck" 
     return error 
    return Response(data) 
+0

ajax呼び出しに起因するものがある場合、ブラウザのコンソールにエラーメッセージが表示されることがあります。 –

+0

@MattCremens 500,403,200はデバッグするための情報を提供しません –

+0

この特定の要求を送出する 'urls.py'を追加することがあります。 –

答えて

0

生産では、電子メールでError Reportingを有効にするためにADMINS設定を使用することができます。

+0

ありがとうございます。しかし、djangoによるエラートラッキングを有効にする方法は知っていますか?なぜそれを追跡しないのですか –

+0

メールでエラー500を引き起こした例外を除いて、完全なstacktraceを取得する必要があります。 –

関連する問題