3

何らかの理由でエラーが発生します:

TypeError: search_products() takes at least 2 arguments (2 given)

奇妙なことに、同じAPI呼び出しを2つの別々の場所で行います。1つはModelクラスの1つに配置した関数です。ページビューのもう1つ。モデルクラスのものは正常に機能しますが、View関数のものはエラーをスローバックします。

以下は、Views.pyの私のコードです。

searchproducts=api.API().search_products(query="myproduct")

繰り返しますが、Models.pyでこれとまったく同じコードを書くと、すべて正常に機能します。

api.pyのAPIクラスのsearch_products関数は次のとおりです。

def search_products(self, category_id, query="", start=0, limit=10, filter=None, ranged_filters=None, sort_by=None):

これが起こっている理由の根本を見つけるために、どうすれば深く掘り下げることができますか?

トレースバック:

/Users/me/Desktop/myenv2/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
                # Apply view middleware
                for middleware_method in self._view_middleware:
                    response = middleware_method(request, callback, callback_args, callback_kwargs)
                    if response:
                        return response
                try:
                    response = callback(request, *callback_args, **callback_kwargs) ...
                except Exception, e:
                    # If the view raised an exception, run it through exception
                    # middleware, and if the exception middleware returns a
                    # response, use that. Otherwise, reraise the exception.
                    for middleware_method in self._exception_middleware:
                        response = middleware_method(request, e)
4

1 に答える 1

4

あなたの定義では、search_productsあなたは必須フィールドとして持ってcategory_idいます、そしてあなたがメソッドを呼び出すときあなたはそれを引数として提供していません。問題を解決するために、デフォルトを提供するcategory_idか、適切な引数を渡します

于 2012-10-07T05:05:46.027 に答える