django-ninja icon indicating copy to clipboard operation
django-ninja copied to clipboard

Uploading imag with extra fields

Open samandar021 opened this issue 3 years ago • 2 comments
trafficstars

I am gonna add avatar image to django object , but I cannout PUT image file with extra fields, it is showing error, how can I fix It? @vitalik

@user_router.put('/profile',
                 response={200: Response[str], 409: Response[Error]},
                 auth=JwtAuthBearer())
def update_profile(request, payload: UserIn, image: Optional[UploadedFile] = File(None)):
    user_id = request.auth
    user = Identity.objects.filter(id=user_id).update(
        first_name=payload.first_name,
        last_name=payload.last_name,
        company_name=payload.company_name,
        # TODO  in current version project edit email is disabled
        # email=payload.email,
        phone_number=payload.phone_number,
    )
    return empty_response()`

and it is giving error like this

{
  "detail": [
    {
      "loc": [
        "body",
        "payload"
      ],
      "msg": "field required",
      "type": "value_error.missing"
    }
  ]
}

422Undocumented | Error: Unprocessable Entity in Swagger UI

samandar021 avatar Jul 06 '22 13:07 samandar021

@samandar021

Django by default do not parse files if method is not POST

you can fix this with custom middleware:

https://github.com/vitalik/django-ninja/issues/417#issuecomment-1092545699

vitalik avatar Jul 06 '22 13:07 vitalik