使ID字段与MongoEngineObjectType一起使用

时间:2019-06-03 13:47:31

标签: mongodb graphql mongoengine graphene-python

我将石墨烯与石墨烯-蒙戈一起使用。我的graphql模式的类型与此类似:

type Report {
   id:ID!
   name:String!
}

我这种类型的石墨烯类是

class Product(MongoengineObjectType):

    class Meta:
        model = MongoProduct

并且mongoengine类是

class MongoProduct(mng.DynamicDocument):        
    name = mng.fields.StringField(required=True)

如何使字段id为必填字段? GraphiQL在name旁边显示一个感叹号,但在id旁边没有显示感叹号。

1 个答案:

答案 0 :(得分:1)

class MongoProduct(mng.DynamicDocument):
    id = ObjectIdField(primary_key=True, required=True)    # Optional: Add default=bson.ObjectId        
    name = mng.fields.StringField(required=True)

id也可以是IntField或StringField,但我建议坚持使用ObjectId