初めてdrf_mongoengineを使用しており、モデルの設定に問題があります。ドキュメント内のEmbeddedDocumentが初期化されない
{
"name" : "new_name",
"metadata": {
"total_efficiency": 0.0,
"eff_vs_layer_thickness":{
"x":[],
"y":[]
}
}
}
モデル:
class Detector(Document):
name = fields.StringField(null=True)
metadata = fields.EmbeddedDocumentField(Metadata, null=False)
class Metadata(EmbeddedDocument):
eff_vs_layer = fields.EmbeddedDocumentField(Plot)
total_efficiency = fields.DecimalField(null=True, default=0)
class Plot(EmbeddedDocument):
x = fields.ListField(fields.FloatField(null=True), default=[])
y = fields.ListField(fields.FloatField(null=True), default=[])
シリアライザ:
class DetectorSerializer(mongoserializers.DocumentSerializer):
class Meta:
model = Detector
fields = '__all__'
class MetadataSerializer(mongoserializers.EmbeddedDocumentSerializer):
class Meta:
model = Metadata
fields = '__all__'
View:
class DetectorViewSet(viewsets.ModelViewSet, mixins.UpdateModelMixin, mixins.DestroyModelMixin):
'''
Contains information about inputs/outputs of a single program
that may be used in Universe workflows.
'''
lookup_field = 'id'
serializer_class = DetectorSerializer
おかげ@Boris Burkov、私は私が埋め込まれた文書なしで文書を作成していたが実現しました。ミックスインを汎用APIビューにミックスする方法は分かりません。私のレポはこれです:https://github.com/alvcarmona/efficiencycalculatorweb – alvcarmona
@alvcarmona許可された操作のカスタムサブセットのみを持つViewSetの例については、記事への私の更新を参照してください。 –