2

リソース.py:

class Root(object):
    __parent__ = __name__ = None

    def __init__(self, request):
        super(Root, self).__init__()
        self.request = request
        self.collection = request.db.post

    def __getitem__(self, key):
        if u'post' in key:
            return Post()

ルート リソースでは、request.db.post を使用してデータベース上の任意のデータを返すことができます。次に、別のリソースを作成しました。

class Post(dict):

    def __init__(self, request):
        super(Post, self).__init__()
        self.__name__ = u'post'
        self.__parent__ = Root
        self.collection = request.db.post

エラーが発生しました:__init__()正確に 2 つの引数を取ります (1 つ指定)

それから私は

self.collection = request.db.post

Post では、エラーは返されませんが、Post からデータベースからデータを返すことはできません。ルート以外の別のリソースからデータベースからデータを返すにはどうすればよいですか?

4

1 に答える 1

2

Post()引数なしでインスタンスを作成しますが、コンストラクターはrequestパラメーターを渡すことを想定しています。リクエストを渡すか、パラメータ要件を削除します。

return Post(self.request)

また:

class Post(dict):
   def __init__(self):
       # ...

通常、データベースにアクセスする方法がわかりません。データベースにアクセスする唯一の方法がインスタンスrequest.dbに渡され、クラスにアクセスself.requestする場合。Post()self.request.dbPost

于 2012-09-02T12:08:01.680 に答える