Синхронизация пользователей Django со Службами Google без использования обезьян - PullRequest
1 голос
/ 09 января 2009

Я пишу приложение для Django и хочу, чтобы учетная запись создавалась на нашей электронной почте, размещенной в Службах Google, с использованием API предоставления при каждом создании учетной записи локально.

Я бы использовал только сигналы, но так как я хотел бы, чтобы пароли были синхронизированы между сайтами, я установил обезьяньё патчи User.objects.create_user и User.set_password, используя оболочки для создания учетных записей Google и обновления паролей соответственно.

Похоже, на обезьяньих нареканий нет, так что я хотел бы знать, есть ли лучший способ сделать это?

Ответы [ 4 ]

1 голос
/ 03 марта 2009

Рассматривали ли вы создание подкласса модели User? Это может создать другой набор проблем и доступно только в более новых выпусках (не уверен, когда изменение вступило в силу, я в транке).

0 голосов
/ 21 июля 2009

Я подкласс пользователя с Django 1.0.2. Вы в основном создаете другую таблицу, которая ссылается на user_id.

class User(MyBaseModel):
    user = models.OneToOneField(User, help_text="The django created User object")

и затем во время выполнения

@login_required
def add(request) :
    u = request.user.get_profile()

После этого вы можете легко перезаписать необходимые методы.

А для тех, кто не слышал об обезьяньей ловушке: http://en.wikipedia.org/wiki/Monkey_patch. Это от партизанского патча

0 голосов
/ 06 июня 2009

Обезьяны, безусловно, плохо. Трудно что-либо сказать, так как вы дали так мало кода / информации. Но я предполагаю, что у вас есть пароль в открытом тексте в какой-то момент (в виде, в форме), так почему бы тогда не выполнить синхронизацию вручную?

0 голосов
/ 15 апреля 2009

Подклассификация кажется лучшим путем, если вы можете изменить весь свой код для использования нового класса Я думаю, что это поддерживается в последней версии Django.

...