Регистрация по инвайт коду?

Добрый день тостер!! Возникла цель создать приглашения на сайт. Я сделал модель приглашений с такими полями: email, user(кто пригашает), code(инвайт код), is_accept(принят ли инвайт).Код приглашения добавляется в конце отправленной ссылки в приглешении.
Вопрос: как в url.py настроить работу ссылки что бы она могла работать и если код есть и нет?
Пример:
При переходе на /register/ появляеться форма регистрации.
При переходе на /register/some_invite_code/ появляется форма регистации и в базу вносится is_accept = True.
  • Вопрос задан
  • 826 просмотров
Решения вопроса 1
VladSkliar
@VladSkliar Автор вопроса
Решил проблему так:
Сделал две страницы:
  • Страница для приглашенных
    url(r'^register/(?P<invite_code>[A-Za-z]+)/$', views.InviteRegisterFormView.as_view(),
          name='invite_register'),


  • Страница для неприглашенных
    url(r'^register/$', views.RegisterFormView.as_view(),
          name='register'),




В cbv InviteRegisterFormView наследовался от RegisterFormView. И использовал переменную
invite_code = self.kwargs['invite_code']
invite = get_object_or_404(UserInvite, code=invite_code)
invite.is_accept = True
invite.save()

Теперь на почту может прийти приглос от разных пользователей, сервер определит по чьей ссылке вы зарегистрировались.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zelsky
@zelsky
Во вью проверять если не использован инвайт код.
Если не использован в модель юзера в поле рефер добавлять айди кому пренадлежит ссилка тоетсь айди рефера.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы