Comments (5)
You'll get the same error with any related fields on a model, it doesn't matter if you're using a ModelSchema
or a base Schema
.
From what I gather, the issue comes from the getattr
call on the DjangoGetter
class. Since the attributes are related fields, django will make a DB call to retrieve the values synchronously, causing the SynchronousOnlyOperation exception.
I'm not sure if this can be handled by ninja directly, but you can avoid this error by prefetching the related objects, using either prefetch_related
or select_related
depending on the type of relation.
from django-ninja.
check this, maybe it would help https://django-ninja.dev/guides/async-support/#using-orm ,
but he is using aget, which is actually async get, i didn't see afilter or something like that
from django-ninja.
Thank you. I understand how to use ORM with async. But ModelSchema
seems not to be supporting this right now?
from django-ninja.
_convert_result
doesn't indeed seem to support async operations, so whenever a database hit is required, the function will fail.
To add to @ariponce's comment and workaround, if you need to do this for a single model instance, you can use (a)prefetch_related_objects
. e.g.:
await aprefetch_related_objects([user_instance], "groups", "user_permissions")
from django-ninja.
@ariponce Thanks. Not familiar with prefetch_related
, but for now it works as expected.
from django-ninja.
Related Issues (20)
- [BUG] cdn error. HOT 3
- [BUG] paginate decorator with custom HTTP status `response={200: ..., 201: ...}` doesn't work HOT 3
- [BUG] Bearer authentication example from documentation doesn't work HOT 1
- `get_openapi_schema` outputs types using `anyOf` style - doesn't work with the Swift OpenAPI generator
- Error when trying to do django runserver -> pydantic.errors.PydanticSchemaGenerationError HOT 1
- [BUG] Using `pydantic.Json[SomeModel]` in a query param fails
- [BUG] Async Error Handlers Return Unawaited Coroutines Instead of HttpResponse in Django Ninja
- Dependency Injection support with `anydi`
- [BUG] `models.URLField` serialized & validated as `str` HOT 1
- Exceptions log level HOT 1
- [BUG] CustomParser request header issue when sending json and file
- [BUG] `ModelSchema` produces `id > (integer | null)` openapi HOT 1
- How to set query param for test.
- When are we getting a new release? HOT 2
- How to detect client disconnects on StreamingHttpResponse (Server Side Events)? HOT 4
- Support "Accept" & "Content-Type" Headers
- [BUG] no Response object generated for ASGI api route HOT 1
- Change settings access to support FastAPI-style single file apps
- How to test api.exception_handler
- Not required fields in FilterSchema
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-ninja.