powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите написать декоратор для Django
3 сообщений из 3, страница 1 из 1
Помогите написать декоратор для Django
    #37904921
kusha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция:
Код: python
1.
2.
3.
4.
@decorator
def func(request):
  hello = "hello"
  return render_to_responce("test.html", locals() )


шаблон test.html:
Код: python
1.
2.
{{ hello }}
{{ username }}


хочу написать декоратор, который для func(request) добавляет переменную user. У меня пока такой вариант:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
def decorator(func):
  def wrapper( request, *args, **kwargs):
    username = request.user.username
    q = func(request, *args, **kwargs)
    #как username вставить в func не знаю ...
    #что нужно дописать ...
    return q
  return wrapper
...
Рейтинг: 0 / 0
Помогите написать декоратор для Django
    #37905123
Фотография FishHook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kusha,

1. Если юзер нужен только в шаблоне передавайте в шаблон RequestContext(request)

Код: python
1.
2.
3.
4.
5.
from django.template.context import RequestContext
.....
def func(request):
    hello = "hello"
    return render_to_responce("test.html", locals(), RequestContext(request) )


2. Можно выдумывать велосипед, а можно использовать нормальный механизм из коробки - Class Based Views.
Смотрите, как все просто

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
class MyBaseView(object):

    def dispatch(self, request, *args, **kw):
        self.user=request.user
        return super(MyBaseView, self).dispatch(request, *args, **kw)


    def get_context_data(self, **kwargs):
        context=super(MyBaseView, self).get_context_data(**kwargs)
        context['user']=self.user
        return context

class Func(MyBaseView, TemplateView):
    template_name='test.html'
...
Рейтинг: 0 / 0
Помогите написать декоратор для Django
    #38011600
inoks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kusha,

вариант с {{user.username}} не подходит?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите написать декоратор для Django
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]