Привет, у меня сигнал при создании пользователя django, я также вручную вставляю этого пользователя в таблицу phpbb.Код выглядит следующим образом:
@receiver(post_save, sender=User)
def user_created_signal(sender, **kwargs):
if kwargs['created']:
user = kwargs['instance']
fields = {
'username': str(user.username),
'username_clean': str(user.username),
'user_password': "",
'user_email': str(user.email),
'group_id': 7,
'user_timezone': 0,
'user_dst': "",
'user_lang': "sv",
'user_type': 0,
'user_actkey': "",
'user_ip': "",
'user_regdate': "",
'user_inactive_reason': "",
'user_inactive_time': "",
'user_permissions': 0,
'user_sig': "",
'user_form_salt': "gg54jhg345",
}
cursor = connection.cursor()
# Add user to phpbb
try:
cursor.execute("INSERT INTO spelutveckla_se.phpbb_users " + str(tuple(fields.keys())).replace("'", "") + " VALUES" + str(tuple(fields.values())))
except Warning:
pass
Я получаю это сообщение об ошибке: (1062, «Дублирующая запись 'test_username' для ключа 'username_clean'")
Я вижу в таблице phpbb_user, чтопользователь был создан.Но когда я удаляю пользователя и повторяю попытку, появляется такая же ошибка.Я пробовал с разными именами пользователей.Это похоже на то, что код выполняется несколько раз, но я пытался поместить точки останова / повышенное исключение в плавники, но я не могу найти никаких признаков выполнения кода более одного раза ...
ВотSQL:
"INSERT INTO spelutveckla_se.phpbb_users (имя пользователя, user_timezone, user_form_salt, username_clean, user_dst, user_lang, user_password, user_sig, user_type, user_actkey, user_ip_ user_reg__ user_id, user_reg, user_perateuser_inactive_time) VALUES ('test_username', 0, 'gg54jhg345', 'test_username', '', 'sv', '', '', 0, '', '', 0, '', 7, '', 'test@gmail.com ',' ')
Пожалуйста, помогите !! Спасибо.