填写配置文件字段时,Django用户创建在管理中失败
我将Django 1.4.1与postgresql 9.1一起使用 我需要添加一个配置文件给用户与认证应用程序,并允许管理员应用程序创建和编辑此配置文件。 因此,我一直在关注文档部分: models.py 设置.py 我还激活了填写配置文件字段时,Django用户创建在管理中失败,django,postgresql,django-admin,django-authentication,Django,Postgresql,Django Admin,Django Authentication,我将Django 1.4.1与postgresql 9.1一起使用 我需要添加一个配置文件给用户与认证应用程序,并允许管理员应用程序创建和编辑此配置文件。 因此,我一直在关注文档部分: models.py 设置.py 我还激活了INSTALLED_apps中的django.contrib.auth和django.contrib.admin应用程序 管理员 问题 现在,当我运行管理应用程序并要求添加(创建)一个新用户时,我被要求通过两步过程创建我的用户:首先,一个页面只要求用户名、密码(两次)和我
INSTALLED_apps
中的django.contrib.auth
和django.contrib.admin
应用程序
管理员
问题
现在,当我运行管理应用程序并要求添加(创建)一个新用户时,我被要求通过两步过程创建我的用户:首先,一个页面只要求用户名、密码(两次)和我的两个UserProfile字段
如果我只输入用户名和密码(两次)并单击“保存”,我将看到流程的第二页,这允许填写所有其他用户字段以及我的UserProfile字段。有一条消息说“用户“xxxxx”已成功添加。您可以在下面再次编辑它。”,幸运的是,我可以编辑两个模型中的字段,它可以工作
但是,如果我试图在第一页的一个或两个UserProfile字段中键入任何内容,提交将失败,并显示以下消息:
IntegrityError at /admin/auth/user/add/
duplicate key value violates unique constraint "userprofile_userprofile_user_id_key"
DETAIL: Key (user_id)=(7) already exists.
每次我尝试时,“7”都会递增
如何避免这种行为,或者如何防止在第一页编辑配置文件字段,但在第二页编辑它们?
完全回溯:
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/auth/user/add/
Django Version: 1.4.1
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'userprofile')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in wrapper
366. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
89. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/sites.py" in inner
196. return view(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/decorators/debug.py" in sensitive_post_parameters_wrapper
69. return view(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapper
25. return bound_func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in bound_func
21. return func(self, *args2, **kwargs2)
File "/usr/local/lib/python2.7/dist-packages/django/db/transaction.py" in inner
209. return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/admin.py" in add_view
114. extra_context)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapper
25. return bound_func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in bound_func
21. return func(self, *args2, **kwargs2)
File "/usr/local/lib/python2.7/dist-packages/django/db/transaction.py" in inner
209. return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in add_view
956. self.save_related(request, form, formsets, False)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in save_related
733. self.save_formset(request, form, formset, change=change)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in save_formset
721. formset.save()
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in save
497. return self.save_existing_objects(commit) + self.save_new_objects(commit)
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in save_new_objects
628. self.new_objects.append(self.save_new(form, commit=commit))
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in save_new
731. obj.save()
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in save
463. self.save_base(using=using, force_insert=force_insert, force_update=force_update)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in save_base
551. result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py" in _insert
203. return insert_query(self.model, objs, fields, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in insert_query
1576. return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py" in execute_sql
910. cursor.execute(sql, params)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/util.py" in execute
40. return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py" in execute
52. return self.cursor.execute(query, args)
Exception Type: IntegrityError at /admin/auth/user/add/
Exception Value: duplicate key value violates unique constraint "userprofile_userprofile_user_id_key"
DETAIL: Key (user_id)=(7) already exists.`
环境:
申请方式:邮寄
请求URL:http://127.0.0.1:8000/admin/auth/user/add/
Django版本:1.4.1
Python版本:2.7.3
已安装的应用程序:
(“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“django.contrib.admin”,
“django.contrib.admindocs”,
“用户配置文件”)
已安装的中间件:
('django.middleware.common.CommonMiddleware',
“django.contrib.sessions.middleware.SessionMiddleware”,
“django.middleware.csrf.CsrfViewMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
回溯:
get_响应中的文件“/usr/local/lib/python2.7/dist packages/django/core/handlers/base.py”
111响应=回调(请求,*回调参数,**回调参数)
包装器中的文件“/usr/local/lib/python2.7/dist packages/django/contrib/admin/options.py”
366返回self.admin\u site.admin\u视图(视图)(*args,**kwargs)
视图中的文件“/usr/local/lib/python2.7/dist packages/django/utils/decorators.py”
91响应=查看功能(请求,*args,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/django/views/decorators/cache.py”
89响应=查看功能(请求,*args,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/django/contrib/admin/sites.py”
196返回视图(请求、*args、**kwargs)
文件“/usr/local/lib/python2.7/dist packages/django/views/decorators/debug.py”,位于敏感的\u post\u参数\u包装器中
69返回视图(请求、*args、**kwargs)
包装器中的文件“/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py”
25返回边界函数(*args,**kwargs)
视图中的文件“/usr/local/lib/python2.7/dist packages/django/utils/decorators.py”
91响应=查看功能(请求,*args,**kwargs)
绑定函数中的文件“/usr/local/lib/python2.7/dist packages/django/utils/decorators.py”
21返回函数(self,*args2,**kwargs2)
文件“/usr/local/lib/python2.7/dist packages/django/db/transaction.py”
209返回函数(*args,**kwargs)
添加视图中的文件“/usr/local/lib/python2.7/dist packages/django/contrib/auth/admin.py”
114额外(上下文)
包装器中的文件“/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py”
25返回边界函数(*args,**kwargs)
视图中的文件“/usr/local/lib/python2.7/dist packages/django/utils/decorators.py”
91响应=查看功能(请求,*args,**kwargs)
绑定函数中的文件“/usr/local/lib/python2.7/dist packages/django/utils/decorators.py”
21返回函数(self,*args2,**kwargs2)
文件“/usr/local/lib/python2.7/dist packages/django/db/transaction.py”
209返回函数(*args,**kwargs)
添加视图中的文件“/usr/local/lib/python2.7/dist packages/django/contrib/admin/options.py”
956与self.save_相关(请求、表单、表单集、False)
文件“/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py”,位于与save_相关的
733self.save_formset(请求、表单、表单集、更改=更改)
保存表单集中的文件“/usr/local/lib/python2.7/dist packages/django/contrib/admin/options.py”
721formset.save()
保存中的文件“/usr/local/lib/python2.7/dist packages/django/forms/models.py”
497返回self.save_现有_对象(提交)+self.save_新_对象(提交)
保存新对象中的文件“/usr/local/lib/python2.7/dist packages/django/forms/models.py”
628self.new\u objects.append(self.save\u new(表单,commit=commit))
save_new中的文件“/usr/local/lib/python2.7/dist packages/django/forms/models.py”
731obj.save()
保存中的文件“/usr/local/lib/python2.7/dist packages/django/db/models/base.py”
463self.save_base(使用=使用,强制插入=强制插入,强制更新=强制更新)
save_base中的文件“/usr/local/lib/python2.7/dist packages/django/db/models/base.py”
551结果=管理器。\插入([self],字段=字段,返回\u id=update\u pk,using=using,raw=raw)
插入文件“/usr/local/lib/python2.7/dist packages/django/db/models/manager.py”
203返回insert_查询(self.model、objs、字段、**kwargs)
insert\u查询中的文件“/usr/local/lib/python2.7/dist packages/django/db/models/query.py”
1576返回query.get\c
class UserProfileInline(admin.StackedInline):
model = UserProfile
can_delete = False
verbose_name_plural = 'profile'
class UserAdmin(UserAdmin):
inlines = (UserProfileInline, )
# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
IntegrityError at /admin/auth/user/add/
duplicate key value violates unique constraint "userprofile_userprofile_user_id_key"
DETAIL: Key (user_id)=(7) already exists.
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/auth/user/add/
Django Version: 1.4.1
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'userprofile')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in wrapper
366. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
89. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/sites.py" in inner
196. return view(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/decorators/debug.py" in sensitive_post_parameters_wrapper
69. return view(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapper
25. return bound_func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in bound_func
21. return func(self, *args2, **kwargs2)
File "/usr/local/lib/python2.7/dist-packages/django/db/transaction.py" in inner
209. return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/admin.py" in add_view
114. extra_context)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapper
25. return bound_func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in bound_func
21. return func(self, *args2, **kwargs2)
File "/usr/local/lib/python2.7/dist-packages/django/db/transaction.py" in inner
209. return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in add_view
956. self.save_related(request, form, formsets, False)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in save_related
733. self.save_formset(request, form, formset, change=change)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in save_formset
721. formset.save()
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in save
497. return self.save_existing_objects(commit) + self.save_new_objects(commit)
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in save_new_objects
628. self.new_objects.append(self.save_new(form, commit=commit))
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in save_new
731. obj.save()
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in save
463. self.save_base(using=using, force_insert=force_insert, force_update=force_update)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in save_base
551. result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py" in _insert
203. return insert_query(self.model, objs, fields, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in insert_query
1576. return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py" in execute_sql
910. cursor.execute(sql, params)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/util.py" in execute
40. return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py" in execute
52. return self.cursor.execute(query, args)
Exception Type: IntegrityError at /admin/auth/user/add/
Exception Value: duplicate key value violates unique constraint "userprofile_userprofile_user_id_key"
DETAIL: Key (user_id)=(7) already exists.`
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.get_or_create(user=instance)
class LocalUserAdmin(UserAdmin):
inlines = (UserProfileInline, )
def get_formsets_with_inlines(self, request, obj=None):
for inline in self.get_inline_instances(request, obj):
# hide MyInline in the add view
if isinstance(inline, UserProfileInline) and obj is None:
continue
yield inline.get_formset(request, obj), inline