0

嘿,当创建 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_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,user_inactive_time)值('test_username',0,' gg54jhg345','test_username','','sv','','',0,'','',0,'',7,'','test@gmail.com','')

请帮忙!!谢谢你。

4

1 回答 1

2

我想我有类似的问题。我移动了将信号添加到另一个__init.py__文件的代码。例如。从您的__init__ 应用程序内部,初始化根项目文件夹中的文件(或相反)。也许这会有所帮助。

于 2011-02-13T21:31:59.600 回答