私はPythonを初めて使用しています。現在、いくつかのPythonコードをデバッグしようとしています。クラスのPythonフィルタインスタンス
私は現在、次のように定義されたビューがあります。このビューの目的は、「プロジェクトID」のパラメータを取り、そして、そのIDに基づいて、最新のバージョンを返すことです
def get_current_budget(project_id, prefetch=False):
""" Find budget by empty version number, or if none, check whether there is one with a current marker """
if prefetch:
project = Project.objects.prefetch_related('budget_versions', prefetch).get(id=project_id)
else:
project = Project.objects.prefetch_related('budget_versions').get(id=project_id)
try:
#budget = project.budget_versions.get(version_number=None)
budgets = project.budget_versions.filter(version_number=None)
print "Latest version of budget: ", project.budget_versions()
"""
1. Check how many elements have been saved to 'budgets'
2. Loop through the elements- assign any with no budget items/ presentation date to a test project
3. Return the element with the budget items/ presentation date
"""
for budget in budgets:
if budget.budget_items == "":
budget.project = "test"
else:
budget.project = project
return budget
except ObjectDoesNotExist:
try:
budget = project.budget_versions.filter(version_number=0).order_by('-presentation_date')[0]
print "Latest verions of budget (execpt- try): ", project.budget_versions()
return budget
except IndexError:
print 'Budgets found', project.budget_versions.all()
return None
をそのプロジェクトに属する予算のうち、「古い」予算をすべてリストに割り当てます。 :言うしかし
、私は(私は「5915」は、データベース内のプロジェクトの一つのIDであることを知っている)、私はKeyError
をgetコマンドget_current_budget(5915)
を使用して、Pythonシェルでこのビューを実行しようと、
KeyError例外トレースバック(最新の呼び出しの最後) ----> 1 get_current_budget(5915)
)(中また、メッセージを表示します。
私たちは、私は本当にこれが何を意味するのか理解していない
504 # `manager='manager_name'` syntax.
を強制するkwarg引数ではなく、** kwargsからを使用して...誰かが私にそれを説明することができますか?私はここで間違って何をしていますか?