Активация пользователя django-регистрации конфликтует с «удаленными» неактивными пользователями - PullRequest
1 голос
/ 10 ноября 2011

Недавно я искал варианты регистрации пользователей, используя шаги активации, и наткнулся на проект django-registration.

В принципе, проблема, которую я заметил, просматривая код, заключается в следующем, и я незнать, какой самый «дешевый» способ решить эту проблему:

Существует двусмысленность между «удаленными» пользователями (помеченными как неактивные - предлагается в нескольких источниках), неактивными пользователями, которые просто не активировали свою учетную запись.(но активация еще не истекла) и те, у которых истек срок действия активации.

Все эти пользователи в auth_user db имеют is_active = False

Чтобы различать «действительных» и «недействительных» пользователей любого пользователяЗапросы БД также должны идти в профиль пользователя и проверять наличие нескольких вещей: то есть следующие действительные пользователи:

  • user.is_active = False AND user.get_profile (). activated! = ACTIVATED AND not_expired_yet
  • user.is_active = True

Это в основном влияет на все операции запроса на объекте userss, если кто-то хочет рассматривать только допустимых пользователей.

Причина, по которой мне понравилось расширение профиля по сравнению с наследованием из модели User (которая создает запросы SQL JOIN), заключалась в том, чтобы избегать дополнительных запросов JOIN везде, где мне не требуется доступполя профиля пользователя.

Итак, я думаю, чтобы сделать короткую историю короткой - два вопроса:

  1. Что бы вы посоветовали для django-регистрационного подхода для решения этой двусмысленности?QuerySet.select_related - это самое лучшее, что я мог придумать, в основном это будет JOIN для каждого запроса на userdb.

  2. Как красиво обернуть прямые вызовы django.auth.contrib.UserМетоды .objects, такие как filter, get, exclude, чтобы они учитывали только действительных пользователей?Лучшее, о чем я мог подумать, - обойти метод RegistrationProfile даже для пользовательских запросов ...

Любые отзывы приветствуются

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