如何使用ReferenceField处理和测试Mongoengine对象?

2024-09-29 19:23:26 发布

您现在位置:Python中文网/ 问答频道 /正文

所以

我正在用flaskrestful、MongoEngine和marshmallow编写一个restapi,在测试具有referencefield的模型时遇到了一些问题。在

我有一个“Praia”模型,有一个“atividades”参考字段。在

当我经过的时候

class PraiasSerializer(Schema):
  id = fields.String()
  atividades = fields.Nested(AtividadesSerializer, many=True)

  class Meta:
    additional = ('nome', 'descricao')

model = {'nome': 'nome', 'descricao': 'descricao',
          atividades: [ativ1.id, ativ2.id]}
praia = Praias(**model)
data = PraiasSerializer(praia).data
data.pop('id')
self.client.post('/v1/praias', data=data,
                 content_type='application/json')

即使这样数据.pop('id')使我的模型不发送'id'到我的控制器,我收到一个TypeError: add_file() got an unexpected keyword argument 'id'

打印此数据变量时,我得到以下输出:

^{pr2}$

我该怎么办?在


Tags: 数据模型idfieldsdatamodelpopclass
1条回答
网友
1楼 · 发布于 2024-09-29 19:23:26

我找到答案了!在

我只是改变了为post请求装载json数据的方式。在

而不是使用我的序列化程序或json.dumps文件(模型)我用的是:

model = {'nome': 'nome', 'descricao': 'descricao',
          atividades: [str(ativ1['id']), str(ativ2['id'])]}
data = json.dumps(model)

我对id执行了强制转换,因为Python不知道如何JSON序列化ObjectId。在

现在请求就行了!在

相关问题 更多 >

    热门问题