Ссылку на активацию учетной записи Django нельзя использовать дважды?

Я использую Django-Registraion-Redux для регистрации пользователя. Когда пользователь регистрируется и нажимает на ссылку активации учетной записи, она активируется, но если пользователь снова нажимает на ту же ссылку, он показывает то же сообщение, что и предыдущее. Это технически неправильно. Итак, как запретить пользователю нажимать на одну и ту же ссылку или как показать ему правильное сообщение


person Community    schedule 17.04.2017    source источник
comment
для меня это нормально, если пользователь нажимает на действующую ссылку активации, а его учетная запись уже активна, скажите им, что все в порядке, не нужно выдавать им какую-то ошибку.   -  person aliva    schedule 17.04.2017
comment
да, но учетная запись ошибки уже активна, не приходит, показывает ту же страницу   -  person    schedule 17.04.2017
comment
как я могу отобразить это - учетная запись уже активна   -  person    schedule 17.04.2017
comment
что вы сделали до сих пор ?? пожалуйста, предоставьте свой код.   -  person mahendra kamble    schedule 17.04.2017
comment
я только что использовал пакет django-registration-redux   -  person    schedule 17.04.2017
comment
django-registration-redux.readthedocs.io/en/latest   -  person    schedule 17.04.2017


Ответы (2)


Вы можете переопределить вид активации, проверить, активен запрошенный пользователь или нет. Если пользователь не активен, активируйте его или, если пользователь уже активен, перенаправьте на страницу с ошибкой, показывающую что-то вроде account already activated..

сделать что-то вроде этого..

def activate(request, *args, **kwargs):
    if request.user.is_active:
         return render(request, alredy_active.html, {})
    else:
        request.user.is_active = True
        request.user.save()
        return render(request, success.html, {})
person Adaikalaraj    schedule 17.04.2017
comment
я должен установить URL для него - person ; 17.04.2017
comment
URL-адрес активации уже существует, все, что вам нужно, это переопределить его. также вам нужно установить URL-адрес ошибки, указывающий на уже активный вид - person Adaikalaraj; 17.04.2017

if request.user.is_authenticated():
    # They already have an account; don't let them register again
    return render_to_response('template-name', {})

Здесь мы проверяем, аутентифицирован ли пользователь или нет, с помощью этого оператора request.user.is_authenticated(), если пользователь аутентифицирован, то отображаем ответ на ваш настроенный шаблон.

person mahendra kamble    schedule 17.04.2017