Эй, у меня есть сигнал, когда создается пользователь 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:
"ВСТАВИТЬ В spelutveckla_se.phpbb_users (имя пользователя, часовой_зона пользователя, user_form_salt, username_clean, user_dst, user_lang, user_password, user_sig, user_type, user_actkey, user_ip, user_permissions, user_regdate, group_id, user_inactive_reason, user_email, user_inactive_time) VALUES('test_username', 0, ' gg54jhg345', 'test_username', '', 'sv', '', '', 0, '', '', 0, '', 7, '', '[email protected]', '')
Пожалуйста помоги!! Спасибо.