Django jQuery просматривает вопрос пользователя

Кажется, я застрял и не уверен, в каком направлении лучше двигаться.

У меня есть несколько приложений в моем проекте, и я хотел бы объединить три представления в один шаблон.

У меня есть профиль пользователя, в котором я хотел бы отображать его информацию, последние новости, а также его фотографии.

Благодаря этому я использую вкладки jQuery.

Я определил свои три вкладки, из которых одна вызывает обычный div, а две другие — это вызываемые URL-адреса.

<a href="wall/recent">wall</a> и <a href="photos/recent">photos</a>

адресная строка читает следующее, когда в профиле пользователя http://localhost:8000/profiles/profile_name/

в моем views.py для wall и photos выглядит следующим образом

@login_required
def index(request, template_name='wall/_index.html'):
    photos = Photos.objects.filter(user=request.user).order_by('-id')
    context = { 'photos': photos, }

    return render_to_response(template_name, context,
        context_instance=RequestContext(request))

Но если я затем посмотрю на МОЙ профиль, все в порядке, но всякий раз, когда я переключаюсь на профиль другого пользователя, он по-прежнему отображает некоторую мою информацию.

Я знаю, что request.user просматривает вошедшего в систему пользователя, как мне получить этого пользователя в адресной строке и передать его, чтобы он отображал правильную информацию, т.е. если profile_name = john, то отображались фотографии johns, последние элементы на стене и т. д.


person ApPeL    schedule 13.08.2010    source источник


Ответы (1)


Если у вас есть urls.py вот так:

urlpatterns = patterns('',
                      (r'^profiles/(?P<prof_name>[A-Za-z0-9\-_]+)/$', 'appname.views.index'))

Затем ваш код просмотра можно изменить следующим образом:

@login_required
def index(request, prof_name, template_name='wall/_index.html'):
    photos = Photos.objects.filter(user__username=prof_name).order_by('-id')
    context = { 'photos': photos, }

    return render_to_response(template_name, context,
        context_instance=RequestContext(request))

Что это делает, так это связывает имя prof_name с любым значением в бите URL-адреса после profiles/ и перед последним /. Учитывая URL-адрес /profiles/john/, вы получите вызываемое представление index с prof_name, установленным на john.

person Dominic Rodger    schedule 13.08.2010
comment
@ApPeL - отлично, спасибо, что приняли мой ответ - не могли бы вы тоже проголосовать за него? - person Dominic Rodger; 13.08.2010