Django:原始sql INSERT INTO phpbb db失败:错误#1062重复密钥

时间:2011-02-13 20:48:42

标签: sql django phpbb duplicates

嘿 当创建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:

  

“插入进来   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)   VALUES('test_username',0,   'gg54jhg345','test_username','',   'sv','','',0,'','',0,'',7,'',   'test@gmail.com','')

请帮忙!!谢谢。

1 个答案:

答案 0 :(得分:2)

我想我有类似的问题。我移动了将信号添加到另一个__init.py__文件的代码。对于前者从yourapp内的__init__到根项目文件夹中的init文件(或反向)。也许这会有所帮助。