2012-11-17 2 views
0

데이터를 분리해야하는 프로젝트가 있습니다.현물 이름 공간

구현 될 '시스템'이 여러 개 있습니다. 각 모델은 일반적인 모델을 기반으로합니다. 이것을 GAE 데이터 저장소에 넣으려면 접두어 인 4EClass, 3EClassPthClass을 사용할 수 있습니다. 차라리 청소기처럼 보이는 네임 스페이스를 사용하고 싶습니다.

나는 종류의 서브 클래스의 네임 스페이스를 설정할 수 있도록하고 싶습니다 :

class Class(db.Model): 
    namespace = '4E' 

다음의 네임 스페이스 작업 할 넣어 얻을 수있는 방법, 쿼리 등 바람직 Class.query(namespace=Class.namespace) 또는를 할 필요없이 거기 처럼?

+0

귀하의 질문은 (적어도 나에게) 매우 불분명하다. 아마 [모듈] (http://docs.python.org/2/tutorial/modules.html)을 찾고 있습니까? –

+0

폴리 모델을 체크 아웃 했습니까? https://developers.google.com/appengine/docs/python/datastore/polymodelclass – aschmid00

답변

0

나는 당신이 찾고있는 것이 polymodels이라고 생각합니다. 여기 NDB와 : https://developers.google.com/appengine/docs/python/ndb/polymodelclass
또는 DB : https://developers.google.com/appengine/docs/python/datastore/polymodelclass

나는 또한 당신을 제안 대신 db 패키지의 ndb를 사용합니다. https://developers.google.com/appengine/docs/python/datastore/polymodelclass

+0

PolyModel을 사용할 수도 있지만 Model (또는 PolyModel) 하위 클래스에서 네임 스페이스를 설정하는 방법을 찾고 있습니다. – fread2281

+0

네임 스페이스를 사용하려는 이유가 무엇입니까? 폴리 모델을 사용하면 모델의 하위 클래스를 쿼리하고 수퍼 클래스를 사용하여 모든 하위 모델을 쿼리 할 수 ​​있습니다. 네임 스페이스를 사용하면 그렇게 할 수 없지만 어쩌면 그 이유가있을 수 있습니다. – aschmid00

+0

잠재적으로 많은 양의 중첩되고 독립적 인 섹션이 있기 때문에 네임 스페이스를 사용하고 싶습니다. – fread2281

1

네임 스페이스를 사용하면 큰 의미가 없습니다. 네임 스페이스는 모델 클래스와 직교합니다.

대신 독립적으로 클래스 이름의 종류의 이름을 지정할 수 있습니다

class MyModel(db.Model): 
    @classmethod 
    def kind(cls): 
    return "MyModel_Foo"