Переключить логическое значение с простым представлением в Django? - PullRequest
4 голосов
/ 30 июля 2010

У меня есть простое представление, но я не могу заставить его делать то, что он должен, который просто переворачивает логическое значение:

def change_status(request):
 request.user.get_profile().active=not request.user.get_profile().active
 return render_to_response('holdstatus.html', {
  'user' : request.user,
 })

В дополнение к "нет", я пробовал'-' и '!', но все безрезультатно.

Ответы [ 2 ]

7 голосов
/ 30 июля 2010

Вам необходимо сохранить изменения в базе данных.

def change_status(request):
    profile = request.user.get_profile()
    profile.active = not profile.active
    profile.save()
    return render_to_response('holdstatus.html', {
       'user': request.user,
    })
1 голос
/ 01 апреля 2016

Поздно, но может помочь кому-то еще. Вы можете переключаться с помощью ^= True. Переключить поле active в профиле, например: -

profile = request.user.get_profile()
profile.active ^= True
profile.save()
...