Skip to content Skip to sidebar Skip to footer

Going To Another View

Say I have the following view: def show(request): protect(request) ... some more code here... return render_to_response ... 'protect' is another app view which I

Solution 1:

If its only purpose is what you've described, you should consider writing protect as a view decorator. This answer provides one example of how to do so.

Based on view decorators that I have written, your protect decorator could look something like:

from functools import wraps

from django.utils.decorators import available_attrs

defprotect(func):
    @wraps(func, assigned=available_attrs(func))definner(request, *args, **kwargs):
        if some_condition:
            return render_to_response('protected_template')
        return func(request, *args, **kwargs)
    return inner

Which would allow you to then use it like:

@protectdefshow(request):
   ...
   return render_to_response(...)

Post a Comment for "Going To Another View"