2

norel Djangoのdistを使用せずに、DjangoとMongoDBを操作するための「ミニdjangoモデル」のようなものを構築しようとしています(これらにはORMアクセスは必要ありません...)。

だから、私がやろうとしているのは、djangoのデフォルトモデルの標準的な動作または「実装」を模倣することです...それが私がこれまでに得たものです:

ファイル「models.py」(ベース)

from django.conf import settings
import pymongo

class Model(object):
    @classmethod
    def db(cls):
        db = pymongo.Connection(settings.MONGODB_CONF['host'], settings.MONGODB_CONF['port'])

    @classmethod
    class objects(object):
        @classmethod
        def all(cls):
            db = Model.db() #Not using yet... not even sure if that's the best way to do it
            print Model.collection

ファイル「mongomodels.py」(実装)

from mongodb import models

class ModelTest1(models.Model):
    database = 'mymongodb'
    collection = 'mymongocollection1'

class ModelTest2(models.Model):
    database = 'mymongodb'
    collection = 'mymongocollection2'

ファイル "views.py" (ビュー)

from mongomodels import ModelTest1, ModelTest2

print ModelTest1.objects.all() #Should print 'mymongocollection1'
print ModelTest2.objects.all() #Should print 'mymongocollection2'

問題は、ModelTest1 からではなく、元のモデルから変数にアクセスしていることです...何が問題なのですか??

4

1 に答える 1

0

objectsそれを含むクラスへの何らかのリンクを提供する必要があります。現在、Model()s属性を使用するようにハードコーディングしているだけです。これらのクラスをインスタンス化していないため、デコレータまたはメタクラスのいずれかを使用してobject、 の各サブクラスでクラスを作成する必要がありModel()ます。

于 2012-11-07T22:46:25.760 に答える