Hi,
My use case implies that I don't want to create a custom new request but a
clone of the initial request!
I investigated a little more and found that "request.copy()" duplicates
most of the initial query attributes, including properties added via
"add_request_method()" (reifyed or not), except "root" and "registry".
So finally I use a function like this:
def copy_request(request):
"""Create clone of given request, keeping registry and root as well"""
root = request.root
request = request.copy()
if not hasattr(request, 'registry'):
registry = get_current_registry()
if registry is None:
registry = get_global_registry()
request.registry = registry
request.root = root
return request
Any advise is still welcome! ;)
Best regards,
Thierry
Le mar. 15 janv. 2019 à 21:22, Bobby <[email protected]> a écrit :
> The following works for me whenever celery needs a dup request:
>
> import plaster
> from pyramid.request import Request, apply_request_extensions
>
> def make_request():
> loader = plaster.get_loader('development.ini', protocols=['wsgi'])
> app = loader.get_wsgi_app()
> r = Request.blank('/localhost:6543')
> r.registry = app.registry
> apply_request_extensions(r)
> return r
>
>
>
> On Tuesday, January 15, 2019 at 5:09:18 AM UTC-5, Thierry Florac wrote:
>>
>> Hi,
>> Simple question: I have a use case where I need to create an exact copy
>> (a clone) of a request, to update it's properties and make "simulations"
>> (actually by providing custom marker interfaces) without modifying the
>> original request.
>> Is there a good way to do this?
>> Actually I just tried to do a "request.copy()", but then I get errors
>> like "AttributeError: 'Request' object has no attribute 'root'" when trying
>> to get access to "root" attribute...
>>
>> Thanks for any help,
>> Thierry
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "pylons-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/pylons-discuss/feac8d1c-4f07-46a6-af06-dc94eb1b2d69%40googlegroups.com
> <https://groups.google.com/d/msgid/pylons-discuss/feac8d1c-4f07-46a6-af06-dc94eb1b2d69%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
http://pyams.readthedocs.io
--
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/pylons-discuss/CAPX_VWCJ6E13CL3wuDJmXmcUp%3DSNSTEtegJ%3D1JP61Wuvw%2Biq9w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.