📝 Change how we work with `FileMetadata` validation (#1493)
Currently, this code is allowed:
from typing import Literal
import pydantic
from dmr import Body, Controller, FileMetadata
from dmr.plugins.pydantic import PydanticSerializer
from dmr.parsers import JsonParser, MultiPartParser
class Text(pydantic.BaseModel):
content_type: Literal['text/plain']
class Files(pydantic.BaseModel):
text: Text
class MyController(Controller[PydanticSerializer]):
parsers = [JsonParser(), MultiPartParser()]
def post(
self,
parsed_body: Body[dict[str, str]],
parsed_file_metadata: FileMetadata[Files],
) -> str:
return 'done'
But, how can we ever satisfy?
•
JsonParser()•
parsed_file_metadata: FileMetadata[Files]It is not optional. Every request here will fail.
What we can do? Change
django-modern-rest/dmr/components.py
Lines 866 to 889 in f822e35
from
any to all.#bug #good_first_issue #help_wanted #opensource_september #django_modern_rest
sent via relator