получение / встраивание идентификатора пользователя в URL / шаблоны - PullRequest
0 голосов
/ 06 июля 2010

Я довольно новичок в django, и я хочу обновить часть своего содержимого в DB django, для этого я написал небольшую функцию просмотра.который выглядит так

def status_change(request,id):
    instance = get_object_or_404(register,id=id)
    if request.method == 'POST':
       rform = registerForm(instance=instance, data=request.POST)
       if rform.is_valid():
          instance = rform.save()
          return render_to_response('home.html')
    else:
        rform = registerForm(instance=instance)
        return render_to_response('status_change.html',{'rform':rform}) 

Я хочу передать этот «идентификатор» из шаблона в «представление».мои URL-адреса выглядят так:

      (r'^status/(?P<id>\d+)$', views.status_change),

, и когда я использую

      (r'^status/(?P<id>\d+)$', views.status_change, name ='status_change'),

, он лает как синтаксическая ошибка в этой строке
, а в моем шаблоне у меня

<a href = "/status/{{user.id}}">Change Status</a>

но все дело в том, что я не получаю идентификатор из шаблона / URL, я где-то ошибаюсь.любая помощь будет принята с благодарностью

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 06 июля 2010

Если вам нужен идентификатор текущего пользователя, вы также можете использовать обработчик контекста запроса django http://docs.djangoproject.com/en/dev/ref/templates/api/#django-core-context-processors-request,, который позволяет получить к нему доступ через {{ request.user.id }}.

1 голос
/ 06 июля 2010

спасибо за каждого У меня есть простой способ, но я не знаю, хорошая ли это практика или нет вместо того, чтобы получить идентификатор пользователя из шаблона / URL я просто вставил эту вещь в мой код, и она отлично работает

def status_change(request):
    instance = get_object_or_404(register,pk=request.user.id)
1 голос
/ 06 июля 2010

Вы не дали ничего, чтобы получить user от.Передайте ему RequestContext.

и используйте {% url %}.

Синтаксическая ошибка происходит из-за того, что кортежи не могут иметь именованных аргументов.Возможно, вы хотели url() вместо.

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