3

モデルの ORM として mongoengine を使用して、django rest フレームワークで REST API をセットアップしました。ただし、オプションである必要があるフィールドの API からこの応答が返され続けます。

{"ref":["このフィールドは null ではない可能性があります。"]}

私が直面している問題は、すべてのフィールド (具体的には を使用してReferenceFieldsいますが、 などでも試しましたStringFields) をオプション/ヌルにすることは許可されていないように見えることです。

検証メソッドを空のラムダ ( を返すTrue) に設定null=Truerequired=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ではなく、私が試したどのフィールドでも同じです。

4

0 に答える 0