我試圖從一個CVS文件導入用戶。其中一些沒有電子郵件,這導致了一些問題。導入用戶(密鑰(電子郵件)=()已存在)
我使用Django 1.6和標準用戶。
這是錯誤我得到的,試圖導入用戶沒有電子郵件時:
IntegrityError('duplicate key value violates unique constraint "account_emailaddress_email_key"\nDETAIL: Key (email)=() already exists.\n',)
Traceback (most recent call last):
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
R = retval = fun(*args, **kwargs)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/celery/app/trace.py", line 437, in __protected_call__
return self.run(*args, **kwargs)
File "/home/<USER>/.virtualenvs/<SITE>/<PROJECT>/apps/accounts/tasks.py", line 1151, in import_users_from_cvs
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/models/manager.py", line 154, in get_or_create
return self.get_queryset().get_or_create(**kwargs)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/models/query.py", line 391, in get_or_create
six.reraise(*exc_info)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/models/query.py", line 383, in get_or_create
obj.save(force_insert=True, using=self.db)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/models/base.py", line 545, in save
force_update=force_update, update_fields=update_fields)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/models/base.py", line 573, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/models/base.py", line 654, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/models/base.py", line 687, in _do_insert
using=using, raw=raw)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/models/manager.py", line 232, in _insert
return insert_query(self.model, objs, fields, **kwargs)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/models/query.py", line 1514, in insert_query
return query.get_compiler(using=using).execute_sql(return_id)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 903, in execute_sql
cursor.execute(sql, params)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/backends/util.py", line 69, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/utils.py", line 99, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/<USER>/.virtualenvs/<SITE>/local/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
IntegrityError: duplicate key value violates unique constraint "account_emailaddress_email_key"
DETAIL: Key (email)=() already exists.
這裏是分貝結構:
test_db=# \d+ account_emailaddress;
Table "public.account_emailaddress"
Column | Type | Modifiers | Storage | Description
----------+-----------------------+-------------------------------------------------------------------+----------+-------------
id | integer | not null default nextval('account_emailaddress_id_seq'::regclass) | plain |
user_id | integer | not null | plain |
email | character varying(75) | not null | extended |
verified | boolean | not null | plain |
primary | boolean | not null | plain |
Indexes:
"account_emailaddress_pkey" PRIMARY KEY, btree (id)
"account_emailaddress_email_key" UNIQUE CONSTRAINT, btree (email)
"account_emailaddress_email_like" btree (email varchar_pattern_ops)
"account_emailaddress_user_id" btree (user_id)
Foreign-key constraints:
"account_emailaddress_user_id_fkey" FOREIGN KEY (user_id) REFERENCES auth_user(id) DEFERRABLE INITIALLY DEFERRED
Referenced by:
TABLE "account_emailconfirmation" CONSTRAINT "account_emailconfirmation_email_address_id_fkey" FOREIGN KEY (email_address_id) REFERENCES account_emailaddress(id) DEFERRABLE INITIALLY DEFERRED
Has OIDs: no
有什麼我可以要解決這個問題嗎?
編輯:
我可以生成一個隨機的電子郵件地址,無需每個用戶,但我仍然得到一個錯誤
IntegrityError('duplicate key value violates unique constraint "account_emailaddress_email_key"\nDETAIL: Key (email)=() already exists.\n',)
有「重啓」 account_emailaddress_email_key
的一些方法?