ねえ、私は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、"キー'username_clean'のエントリ'test_username'が重複しています")
phpbb_userテーブルで、ユーザーが作成されたことがわかります。しかし、ユーザーを削除して再試行すると、同じエラーが表示されます。私もさまざまなユーザー名で試しました。コードが複数回実行されているようですが、ブレークポイント/発生した例外をfinsに配置しようとしましたが、コードが複数回実行されている兆候が見つかりません...
SQLは次のとおりです。
"INSERT INTO spelutveckla_se.phpbb_users(username、user_timezone、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、 gg54jhg345'、' test_username'、''、' sv'、''、''、0、''、''、0、''、7、''、'test@gmail.com'、'')
助けてください!!ありがとうございました。