Как заставить пользователей заполнить свой профиль в Django - PullRequest
0 голосов
/ 19 октября 2019

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

Я хочу заставить пользователей заполнить свой профиль и ввести необходимую информацию в свой профиль. Например, я хочу:

Система показывает им предупреждение и принудительночтобы заполнить свой профиль через три дня после регистрации.

Как я могу это сделать? Примечание. С другой стороны, я хочу заблокировать доступ к панели для пользователей, которые еще не завершили свой профиль, пока они не завершат свой профиль.

1 Ответ

2 голосов
/ 19 октября 2019

Вам нужно будет реализовать промежуточное программное обеспечение. В этом middleware вы получите своего пользователя и проверите, есть ли у него профиль, если нет, то перенаправьте его на страницу профиля с сообщением, например.

Ваше промежуточное ПО будет выглядеть примерно так

def check_userprofile_middleware(get_response):
    # One-time configuration and initialization.

    def middleware(request):
        # Code to be executed for each request before
        # the view (and later middleware) are called.

        If not hasattr(request.user, "profile"):
             redirect("complete-profile-page")

        response = get_response(request)

        return response

    return middleware

Затем вам нужно добавить это в раздел промежуточного ПО в settings.py, чтобы активировать промежуточное ПО.

Надеюсь, это поможет!

...