モデルの ORM として mongoengine を使用して、django rest フレームワークで REST API をセットアップしました。ただし、オプションである必要があるフィールドの API からこの応答が返され続けます。
{"ref":["このフィールドは null ではない可能性があります。"]}
私が直面している問題は、すべてのフィールド (具体的には を使用してReferenceFields
いますが、 などでも試しましたStringFields
) をオプション/ヌルにすることは許可されていないように見えることです。
検証メソッドを空のラムダ ( を返すTrue
) に設定null=True
しrequired=False
、モデル内でフィールドが定義されている場所を設定しようとしました。
mongoengine インポートから * クラス B (ドキュメント): ... クラス A (ドキュメント): ref = ReferenceField('B', null=True, required=False, dbref=False, validation=lambda: True)
Aのシリアライザーで明示的にシリアライザーを設定して、nullを許可するように指示することさえ試みました( with allow_null=True
):
from api.models import A,B rest_framework_mongoengine.serializers import DocumentSerializer から クラス BSerializer(DocumentSerializer): クラスメタ: モデル = B 深さ = 2 クラス ASerializer(DocumentSerializer): ref = BSerializer(allow_null=True) クラスメタ: モデル = A 深さ = 2
オプションの (nullable) フィールドを django rest フレームワークと mongoengine で動作させるにはどうすればよいですか? 繰り返しますが、これは だけReferenceFields
ではなく、私が試したどのフィールドでも同じです。