2012-01-23 13 views
1

エラー:引数を持つ 'charges_report' '(u'rtcl'、datetime.date(2012、1、3)、datetime.date(2012、1のためのDjangoのURLエラー

リバース、4)、U」 ')'とキーワード引数 '{}'が見つかりません。

私urls.pyで

url(r'^charges_report/(?P<company_name>[\s\w\d-]+)/(?P<start_date>[\s\w\d-]+)   /(?P<close_date>[\s\w\d-]+)/(?P<batch_no>[\s\w\d-]+)/$', 
           'admin.reports.views.charges_report', 
           name='charges_report'), 

とPOST

に私のフォームビューで、ユーザは、エラーが発生している形成提出した場合。私はrequest.POSTに意味、ここではフォームのコードは、ビューに

def charges_report(request, company_name, start_date, close_date, batch_no=None,): 
+0

私はあなたの質問を理解していません。特定のURLでアプリケーションを呼び出すと、Djangoは「キーワード引数 '{}'が見つかりません」というエラーを表示していますか?正確なテストケースと正確なエラーメッセージのテキストを教えてください。 –

+0

私は4つのパラメータを取るcharge_reportというURLを持っています。これらの4つのパラメータはフォームから来ています。ユーザーがこれらの4つのパラメータをフォームから送信すると、それはcharging_reportにリダイレクトされます。ユーザーが最後のパラメータを指定しなかった場合(最後のパラメータはオプション)、エラーが発生します。 – Asif

+0

コードのどの部分がエラーを引き起こしていますか?正確なエラー・メッセージ・テキストには、スタック・トレースが含まれている可能性があります。スタック・トレースは、エラーが発生した場所を示します。 –

答えて

0

あなたのURLはキーワード引数を取っていますが、位置引数をreverseに渡しています。

試してみてください。

kwargs = dict() 
    kwargs['company_name'] = company_name 
    kwargs['start_date'] = start_date 
    kwargs['close_date'] = close_date 
    kwargs['batch_no'] = batch_no 
    return HttpResponse(reverse('charges_report',kwargs=kwargs)) 

また、あなたのURLパターンの正規表現に一致するようにあなたの日付をフォーマットする必要があります。今では、リテラル文字列datetime.date(2012, 1, 3)start_dateとして渡しています。

変更するには、このようなあなたの正規表現、何かにマッチするものにstart_date(およびclose_date):

kwargs['start_date'] = "{}".format(start_date) 
kwargs['close_date'] = "{}".format(close_date) 
+0

引き続き同じエラーが発生しました 'charge_report'の引き数 '()'とキーワード引数 '{'開始日 ':datetime.date(2012,1,1)、' close_date ':datetime.date(2012、1) 、31)、 'batch_no':u ''、 'company_name':u'rtcl '}'が見つかりません。 – Asif

0

Django URL dispatch documentation注意を

 if request.POST: 
     company_form = CompanyForm(request.POST, request=request) 

     if company_form.is_valid(): 
      company_name = company_form.cleaned_data['company_name'] 
      start_date = company_form.cleaned_data['start_date'] 
      close_date = company_form.cleaned_data['close_date'] 
      batch_no = company_form.cleaned_data['batch_no'] 


     #if 'immigration_charges' in request.POST: 

     return  HttpResponseRedirect(reverse('charges_report',args=[company_name, start_date, close_date, batch_no])) 

を提出していること:

  • 「いずれかをインポートしながら、任意のエラーがある場合そのビュー機能があなたが逆引きしようとしているものではない場合でも、reverse()はエラーを発生させます。
  • "URLconfファイルで参照するビューが存在し、正しくインポートできることを確認してください。"
  • "まだ書き込んでいないビューを参照する行は含めないでください。" -

これらのいずれかが問題の可能性があります。

+0

私は4つのパラメータを取るcharge_reportというURLを持っています。これらの4つのパラメータはフォームから来ています。ユーザーがこれらの4つのパラメータをフォームから送信すると、それはcharging_reportにリダイレクトされます。ユーザーが最後のパラメータを指定しなかった場合(最後のパラメータはオプション)、エラーが発生します。 – Asif

0

は、位置引数の代わりにkwarg辞書を使用してみてください。