gpt4 book ai didi

用户创建时的 Django 信号

转载 作者:行者123 更新时间:2023-12-04 21:53:38 28 4
gpt4 key购买 nike

我已经将用户的创建与函数 create_user_profile 连接起来,当我创建我的用户时出现问题,我似乎连接的函数被调用了两次,而 UserProfile 试图被创建两次,女巫触发了一个错误

列 user_id 不是唯一的

Request Method: POST
Request URL: http://127.0.0.1:8000/register/
Django Version: 1.3
Exception Type: IntegrityError
Exception Value:
column user_id is not unique
Exception Location: c:\Python27\lib\site-packages\django\db\backends\sqlite3\base.py in execute, line 234
Python Executable: c:\Python27\python.exe
Python Version: 2.7.2

这是调试日志:
[13/Apr/2012 10:20:57] "GET /register/ HTTP/1.1" 200 176691
DEBUG:django.db.backends:(0.002) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."last_name" = favicon ; args=(u'favicon',)
DEBUG:django.db.backends:(0.001) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."last_name" = testuser2 ; args=(u'testuser2',)
DEBUG:django.db.backends:(0.000) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."username" LIKE testuser2@gmail.com ESCAPE '\' ; args=(u'testus
er2@gmail.com',)
DEBUG:django.db.backends:(0.001) INSERT INTO "auth_user" ("username", "first_name
", "last_name", "email", "password", "is_staff", "is_active", "is_superuser", "la
st_login", "date_joined") VALUES (testuser2@gmail.com, , , testuser2@gmail.com, s
ha1$9bc1b$c9d377a1bf228ef74eb6931a9ed02d5c455e1576, False, True, False, 2012-04-1
3 10:21:13.949000, 2012-04-13 10:21:13.949000); args=(u'testuser2@gmail.com', '',
'', u'testuser2@gmail.com', 'sha1$9bc1b$c9d377a1bf228ef74eb6931a9ed02d5c455e1576
', False, True, False, u'2012-04-13 10:21:13.949000', u'2012-04-13 10:21:13.94900
0')


====================================
=


DEBUG:django.db.backends:(0.002) INSERT INTO "page_userprofile" ("user_id", "thum
b", "name", "title", "description", "phone", "birthday", "address", "lat", "lng",
"gender", "creation_date", "updation_date") VALUES (13, , , , , , None, , , , ,
2012-04-13 10:21:14.131000, 2012-04-13 10:21:14.131000); args=(13, '', '', '', ''
, '', None, '', '', '', '', u'2012-04-13 10:21:14.131000', u'2012-04-13 10:21:14.
131000')
DEBUG:django.db.backends:(0.002) INSERT INTO "page_pagesettings" ("user_id", "bac
kground_url", "background_repeat", "showAvatar", "showTags", "color_background",
"color_panel_background", "color_panel_background_opacity", "color_name", "color_
title", "color_description", "color_links", "font_name", "font_title", "font_desc
ription", "font_tags_and_links", "font_size_name", "font_size_title", "font_size_
description", "font_size_tags_and_links", "can_contact_via_email", "panel_positio
n") VALUES (13, , 0, False, True, , , , , , , , , , , , , , , , True, ); args=(13
, '', u'0', False, True, '', '', '', '', '', '', '', '', '', '', '', '', '', '',
'', True, '')


====================================
=


DEBUG:django.db.backends:(0.002) INSERT INTO "page_userprofile" ("user_id", "thum
b", "name", "title", "description", "phone", "birthday", "address", "lat", "lng",
"gender", "creation_date", "updation_date") VALUES (13, , , , , , None, , , , ,
2012-04-13 10:21:14.442000, 2012-04-13 10:21:14.442000); args=(13, '', '', '', ''
, '', None, '', '', '', '', u'2012-04-13 10:21:14.442000', u'2012-04-13 10:21:14.
442000')
DEBUG:django.db.backends:(0.000) SELECT "page_userprofile"."id", "page_userprofil
e"."user_id", "page_userprofile"."thumb", "page_userprofile"."name", "page_userpr
ofile"."title", "page_userprofile"."description", "page_userprofile"."phone", "pa
ge_userprofile"."birthday", "page_userprofile"."address", "page_userprofile"."lat
", "page_userprofile"."lng", "page_userprofile"."gender", "page_userprofile"."cre
ation_date", "page_userprofile"."updation_date" FROM "page_userprofile" LIMIT 21;
args=()
DEBUG:django.db.backends:(0.000) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 1 ; args=(1,)
DEBUG:django.db.backends:(0.000) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 2 ; args=(2,)
DEBUG:django.db.backends:(0.000) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 4 ; args=(4,)
DEBUG:django.db.backends:(0.000) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 5 ; args=(5,)
DEBUG:django.db.backends:(0.000) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 7 ; args=(7,)
DEBUG:django.db.backends:(0.000) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 8 ; args=(8,)
DEBUG:django.db.backends:(0.001) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 9 ; args=(9,)
DEBUG:django.db.backends:(0.001) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 10 ; args=(10,)
DEBUG:django.db.backends:(0.000) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 11 ; args=(11,)
DEBUG:django.db.backends:(0.000) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 12 ; args=(12,)
DEBUG:django.db.backends:(0.000) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."id" = 13 ; args=(13,)
[13/Apr/2012 10:21:15] "POST /register/ HTTP/1.1" 500 446959
DEBUG:django.db.backends:(0.001) SELECT "auth_user"."id", "auth_user"."username",
"auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_us
er"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_
superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user"
WHERE "auth_user"."last_name" = favicon ; args=(u'favicon',)

连接:
def create_user_profile(sender, instance, created, **kwargs):
if created:
print('')
print('')
print('=========================================')
print('')
print('')
UserProfile.objects.create(user=instance)
PageSettings.objects.create(user=instance)

post_save.connect(create_user_profile, sender=User)

创建用户:
newUser = User.objects.create_user(username, username, password)
newUser.last_name = slug

if(registerAs == 'company'):
newUser.first_name = 'company'
else:
newUser.first_name = 'user'

#newUser.save()

最佳答案

使用 dispatch_uid参数为您的信号提供唯一标识符。

post_save.connect(create_user_profile, sender=User, dispatch_uid="create_user_profile")

有关更多信息,请参阅 django docs .

关于用户创建时的 Django 信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10141045/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com