コード例 #1
0
class EmbeddedArticle(motorengine.EmbeddedDocument):

    meta = {"collection": "test_embedded_article"}
    headline = motorengine.StringField(required=True)
    pub_date = motorengine.DateTimeField(default=datetime.now)
    editor = motorengine.ReferenceField(Editor)
    reporter = motorengine.ReferenceField("Reporter")
コード例 #2
0
class ParentWithRelationship(motorengine.Document):

    meta = {"collection": "test_parent_reference"}
    before_child = motorengine.ListField(
        motorengine.ReferenceField("ChildRegisteredBefore"))
    after_child = motorengine.ListField(
        motorengine.ReferenceField("ChildRegisteredAfter"))
    name = motorengine.StringField()
コード例 #3
0
class Player(motorengine.Document):

    meta = {"collection": "test_player"}
    first_name = motorengine.StringField(required=True)
    last_name = motorengine.StringField(required=True)
    opponent = motorengine.ReferenceField("Player")
    players = motorengine.ListField(motorengine.ReferenceField("Player"))
    articles = motorengine.ListField(motorengine.ReferenceField("Article"))
    embedded_list_articles = motorengine.EmbeddedDocumentListField(
        EmbeddedArticle)
コード例 #4
0
class Article(motorengine.Document):

    meta = {"collection": "test_article"}
    headline = motorengine.StringField(required=True,
                                       help_text="The article headline.")
    pub_date = motorengine.DateTimeField(
        default=datetime.now,
        verbose_name="publication date",
        help_text="The date of first press.",
    )
    editor = motorengine.ReferenceField(Editor)
    reporter = motorengine.ReferenceField("Reporter")
コード例 #5
0
def convert_field_to_union(field, registry=None):

    _types = []
    for choice in field.choices:
        if isinstance(field, motorengine.GenericReferenceField):
            _field = motorengine.ReferenceField(get_document(choice))
        elif isinstance(field, motorengine.GenericEmbeddedDocumentField):
            _field = motorengine.EmbeddedDocumentField(choice)

        _field = convert_motorengine_field(_field, registry)
        _type = _field.get_type()
        if _type:
            _types.append(_type.type)
        else:
            # TODO: Register type auto-matically here.
            pass

    if len(_types) == 0:
        return None

    # XXX: Use uuid to avoid duplicate name
    name = "{}_{}_union_{}".format(
        field._owner_document.__name__,
        field.db_field,
        str(uuid.uuid1()).replace("-", ""),
    )
    Meta = type("Meta", (object,), {"types": tuple(_types)})
    _union = type(name, (graphene.Union,), {"Meta": Meta})
    return graphene.Field(_union)
コード例 #6
0
class Reporter(motorengine.Document):

    meta = {"collection": "test_reporter"}
    id = motorengine.StringField(primary_key=True)
    first_name = motorengine.StringField(required=True)
    last_name = motorengine.StringField(required=True)
    email = motorengine.EmailField()
    awards = motorengine.ListField(motorengine.StringField())
    articles = motorengine.ListField(motorengine.ReferenceField(Article))
    embedded_articles = motorengine.ListField(
        motorengine.EmbeddedDocumentField(EmbeddedArticle))
    embedded_list_articles = motorengine.EmbeddedDocumentListField(
        EmbeddedArticle)
    generic_reference = motorengine.GenericReferenceField(
        choices=[Article, Editor])
    generic_embedded_document = motorengine.GenericEmbeddedDocumentField(
        choices=[EmbeddedArticle, EmbeddedFoo])
    generic_references = motorengine.ListField(
        motorengine.GenericReferenceField(choices=[Article, Editor]))
コード例 #7
0
ファイル: example.py プロジェクト: smcclstocks/py-jsonapi
class Post(motorengine.Document):

    text = motorengine.StringField()
    author = motorengine.ReferenceField(User)
コード例 #8
0
 class MotorDoc(motorengine.Document):
     __collection__ = 'IntegrationTestRefDoc'
     embed = motorengine.ReferenceField(MotorBase)
コード例 #9
0
class ChildRegisteredAfter(motorengine.Document):

    meta = {"collection": "test_child_after_reference"}
    parent = motorengine.ReferenceField(ParentWithRelationship)
    name = motorengine.StringField()
コード例 #10
0
ファイル: example.py プロジェクト: smcclstocks/py-jsonapi
class User(motorengine.Document):

    name = motorengine.StringField()
    email = motorengine.EmailField()
    posts = motorengine.ListField(motorengine.ReferenceField("__main__.Post"))