Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
wiki2:python:django:views [2018/10/14 09:25] alfred [Get data from url] |
wiki2:python:django:views [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 45: | Línea 45: | ||
| <code> | <code> | ||
| username = self.request.GET.get('username', '') | username = self.request.GET.get('username', '') | ||
| + | </code> | ||
| + | |||
| + | Coger la url con la que fue llamada la view: | ||
| + | <code> | ||
| + | request.build_absolute_uri() | ||
| + | </code> | ||
| + | |||
| + | === Set login_required decorator === | ||
| + | En el urls.py: | ||
| + | <code> | ||
| + | login_required(ViewSpaceIndex.as_view(..)) | ||
| + | </code> | ||
| + | Usando LoginRequiredMixin: | ||
| + | <code> | ||
| + | from django.contrib.auth.mixins import LoginRequiredMixin | ||
| + | class MyView(LoginRequiredMixin, View): | ||
| + | login_url = '/login/' | ||
| + | redirect_field_name = 'redirect_to' | ||
| + | </code> | ||
| + | Con el method_decorator: | ||
| + | <code> | ||
| + | from django.utils.decorators import method_decorator | ||
| + | @method_decorator(login_required, name='dispatch') | ||
| + | class ViewSpaceIndex(TemplateView): | ||
| + | template_name = 'secret.html' | ||
| + | </code> | ||
| + | |||
| + | === Other decorators for user control === | ||
| + | <code> | ||
| + | from django.contrib.auth.decorators import user_passes_test | ||
| + | |||
| + | @user_passes_test(lambda u: u.is_superuser) | ||
| + | def my_view(request): | ||
| + | ... | ||
| + | </code> | ||
| + | |||
| + | <code> | ||
| + | from django.contrib.admin.views.decorators import staff_member_required | ||
| + | |||
| + | @staff_member_required | ||
| + | def my_view(request): | ||
| + | ... | ||
| </code> | </code> | ||