2016-07-12 10 views
2
views.py

で、私は(別のファイルに)他の関数を呼び出すことができない理由は、私が持っているviews.pyには、いくつかのパスのパラメータのpython /ジャンゴ -

と私のviews.pyからgenerate_picを呼び出したいです:

def generate_pic(db, **kwargs): 
    print "I an here" #this never print out 

    if kwargs['set_id']: 
     user = kwargs.get('user', 'no_user') 
     set_id = kwargs['set_id'] 
     set_id = int(set_id) 
     return 'success' 
    else: 
     return "Please give a set_id to process result." 

def msa_result(request, measurement_id): 
    try: 
     print measurement_id 
     _measurement = UserMeasurements.objects.get(measurement_id=measurement_id) 
     import MySQLdb 
     db = MySQLdb.connect(host="10.231.XX.XX", localhost 
          port=3306, 
          user="XXX", 
          passwd="XXX", 
          db="XX") 

     print "connect database successfully" 
     processing_dict = {'set_id': measurement_id } 
     from post_processing import generate_pic 
     result = generate_pic(db, processing_dict) 
     if result=='success' : 
      return render(request, 'msa_result.html', {'measurement': _measurement}) 
     else: 
      raise Http404("Can not process image in post_processing.py") 
    except: 
     raise Http404("oh noooooo @msa_result") 

HTMLページのエラーは、私が持っているpost_proccessing.pyで

"をpost_processing.pyで画像を処理することはできません" "@msa_result nooooooああ" ではありません

views.pyとpost_processing.pyは同じフォルダにあります。

私のコードで何が問題になっていますか?

+3

裸のexcept節を削除します。あなたがしているのは、問題が実際に何であっても隠しているだけです。 Djangoがあなたに報告するようにしてください。 –

+0

@DanielRosemanエラーはTypeErrorです:generate_pic()は1つの引数(2が指定されています)をとります。何を変更する必要がありますか。 – KKlalala

+1

@DanielRosemanが言ったことを追加します。 try-except句の中にコードの大部分を入れることは、本当に悪い習慣です。それは問題を隠し、デバッグを悪夢にさせるでしょう。通常、このパターンは、プログラミングを初めて経験する人々が問題を "ただ去る"方法として使用します。 –

答えて

2

dictを関数に渡す場合は、**の前にkwargsを渡す必要があります。

result = generate_pic(db, **processing_dict) 
+0

はいそれは機能します!ありがとう – KKlalala