What is the problem you are trying to solve? What do you want to optimize exactly? 🤔
hope this course helps you : https://acciojob.com/ On Monday, June 28, 2021 at 7:36:38 AM UTC+5:30 David Nugent wrote: > Well, one workaround that may serve if your dataset isn't too large is to > use a cache (or dict) and pre-load it. > > Unlike the db, caches tend to be more async friendly, unless of course > your cache is in your db.... :-) > > This just needs to be pre-loaded on startup (<your app>.apps.:<your app > AppConfig>.ready() is a good spot for this), and maybe add a signal on the > relevant model to reload if it changes. > > HTH, > David > > On Mon, Jun 21, 2021 at 5:22 PM Konstantin Kuchkov <[email protected]> > wrote: > >> Thanks for the explanation! >> >> To get it working, I will replace my model converters with basic >> converters and do corresponding lookups in the views. >> >> On Sunday, 20 June 2021 at 16:16:58 UTC-7 Andrew Godwin wrote: >> >>> Ah yes, that's because the URL parsing/conversion all happens in the >>> main (async, in ASGI mode) thread - and because to_python is a a >>> synchronous function interface, there is literally nothing you can do to >>> make it work. >>> >>> The only real way of fixing this would be for Django to patch the URL >>> converters and run them all in a synchronous mode unless they were >>> decorated as "safe" somehow, much like we do for middleware. It's not a >>> terribly hard patch to make, but it does mean you don't have an immediate >>> solution. There are ways of trying to work around it, but they will all >>> result in you blocking the async thread while the ORM query runs, which >>> would be disastrous in production. >>> >>> My apologies for not getting this in for the original async view patch - >>> I had forgotten converters ran in the URL resolver. >>> >>> Andrew >>> >>> On Sat, Jun 19, 2021, at 12:31 AM, [email protected] wrote: >>> >>> >>> I'm trying to switch from WSGI to ASGI and I'm having issues with my >>> model id to model converters. >>> I define my converters like this >>> def to_python(self, primary_key): >>> try: >>> return self.model.objects.get(pk=primary_key) >>> except self.model.DoesNotExist: >>> raise ValueError >>> When I go to a url where a converter is used I get a >>> SynchronousOnlyOperation. >>> Seems like converters are executed in an async context. >>> If I use sync_to_async, I get a coroutine in my view instead of a model >>> instance. Awaiting it here would defeat the purpose of having a converter. >>> >>> Any ideas how to fix this? >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Django users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/django-users/ef60ed71-7f4f-482d-b540-bdf89e249aa4n%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/django-users/ef60ed71-7f4f-482d-b540-bdf89e249aa4n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/c130ef88-4dbf-42b9-a7b3-f0ba0b174a0an%40googlegroups.com >> >> <https://groups.google.com/d/msgid/django-users/c130ef88-4dbf-42b9-a7b3-f0ba0b174a0an%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/dd8d84ff-f318-4c15-b8c0-3be70f68177cn%40googlegroups.com.

