2011-12-19 2 views
0

Я бы хотел разработать приложение для нескольких клиентов, которое отображает данные аналитики, относящиеся к их учетной записи. До сих пор я установил свой файл мнений с помощью декоратора @login_required для ограниченных страниц. Теперь мне нужно определить, что пользователь должен получить свои данные.Django Authorization - определить пользователя в представлениях

bit of research предполагает, что я мог бы использовать:

from django.contrib.sessions.models import Session 
from django.contrib.auth.models import User 

session_key = request.session.session_key() 

session = Session.objects.get(session_key=session_key) 
uid = session.get_decoded().get('_auth_user_id') 

который, очевидно, возвращает user_id, которые я могу использовать в качестве поля в базе данных аналитики, чтобы определить, какие данные пользователь принадлежит.

Это лучший способ сделать это, или кто-нибудь может предложить лучшую/более элегантную альтернативу?

Примечание: Я не тестировал решение, которое я предложил, он просто кажется работоспособным в моей голове.

+0

Вот прохождение добавления аутентификации пользователя, чтобы страница отображала имя пользователя. : http://mdukehall.wordpress.com/2011/12/15/django-python-adventure-part-4/ –

+0

Также, если вам нужно что-то более сложное/ролевое? http://stackoverflow.com/questions/1546670/django-role-based-views –

ответ

6

Вы можете получить доступ зарегистрированного пользователя на request объекта.

@login_required 
def my_view(request): 
    user = request.user 
    do_something(user) 
    ... 
1

, когда вы находитесь в режиме вы можете получить доступ к текущему пользователю (объект) по

def myview(request): 
    request.user 

    # or, if you want, 
    request.user.id 
Смежные вопросы