2012-03-13 10 views
6

EDIT1: मैंने सब कुछ रीसेट करने के लिए sqlflush करने का प्रयास किया, लेकिन इससे मदद नहीं मिली।मैं UserProfile मॉडल (जब उपयोगकर्ता इंटरफ़ेस से बनाया गया उपयोगकर्ता) के साथ IntegrityError को कैसे ठीक करूं?

EDIT2: मैं उपयोगकर्ता बनाने और अन्य मॉडेल को न्यूल के रूप में निर्दिष्ट करने में सक्षम हूं, और उसके बाद उपयोगकर्ता को अन्य मॉड्यूल को वास्तविक संदर्भ बनाने के लिए संपादित करता हूं। समस्या तब होती है जब मैं उपयोगकर्ता निर्माण के दौरान संदर्भ निर्दिष्ट करता हूं।

तो मेरे ऐप में, जो पोस्टग्रेज़ के साथ जुड़ा हुआ है, मैं उपयोगकर्ता मॉडल को विस्तारित करने की कोशिश कर रहा हूं कि django उपयोगकर्ता प्रोफाइल नामक एक नया मॉडल प्रदान करता है। मैं चाहता हूं कि प्रत्येक उपयोगकर्ता को मेरे द्वारा बनाए गए किसी अन्य मॉडल से जोड़ा जाए। तो यहाँ मेरी कोड है:

models.py

. 
. 
. 

class OtherModel(models.Model): 
    # model info 

class UserProfile(models.Model): 
    user = models.OneToOneField(User)  
    othermodel = models.OneToOneField(OtherModel, null=True) 

def create_user_profile(sender, instance, created, **kwargs): 
    if created: 
     profile, created = UserProfile.objects.get_or_create(user=instance) 

post_save.connect(create_user_profile, sender=User) 

मैं Django व्यवस्थापक इंटरफ़ेस से एक उपयोगकर्ता बनाते हैं, मैं निम्नलिखित त्रुटि मिलती है:

IntegrityError at /admin/auth/user/add/ 
duplicate key value violates unique constraint "planamocal_userprofile_user_id_key" 
DETAIL: Key (user_id)=(23) already exists. 

हर मैं बनाने की कोशिश एक नया उपयोगकर्ता, user_id गिनती बढ़ती रहती है, जो अजीब है क्योंकि मेरा वास्तविक उपयोगकर्ता गिनती वही रहता है।

Environment: 


Request Method: POST 
Request URL: http://127.0.0.1:8000/admin/auth/user/add/ 

Django Version: 1.3.1 
Python Version: 2.7.1 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'planamocal', 
'django.contrib.admin'] 
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 "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/contrib/admin/options.py" in wrapper 
    307.     return self.admin_site.admin_view(view)(*args, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view 
    93.      response = view_func(request, *args, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 
    79.   response = view_func(request, *args, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner 
    197.    return view(request, *args, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper 
    28.    return bound_func(*args, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view 
    93.      response = view_func(request, *args, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func 
    24.     return func(self, *args2, **kwargs2) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/db/transaction.py" in inner 
    217.     res = func(*args, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/contrib/auth/admin.py" in add_view 
    103.   return super(UserAdmin, self).add_view(request, form_url, extra_context) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper 
    28.    return bound_func(*args, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view 
    93.      response = view_func(request, *args, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func 
    24.     return func(self, *args2, **kwargs2) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/db/transaction.py" in inner 
    217.     res = func(*args, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/contrib/admin/options.py" in add_view 
    885.      self.save_formset(request, form, formset, change=False) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/contrib/admin/options.py" in save_formset 
    677.   formset.save() 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/forms/models.py" in save 
    482.   return self.save_existing_objects(commit) + self.save_new_objects(commit) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/forms/models.py" in save_new_objects 
    613.    self.new_objects.append(self.save_new(form, commit=commit)) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/forms/models.py" in save_new 
    717.    obj.save() 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/db/models/base.py" in save 
    460.   self.save_base(using=using, force_insert=force_insert, force_update=force_update) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/db/models/base.py" in save_base 
    553.      result = manager._insert(values, return_id=update_pk, using=using) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/db/models/manager.py" in _insert 
    195.   return insert_query(self.model, values, **kwargs) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/db/models/query.py" in insert_query 
    1436.  return query.get_compiler(using=using).execute_sql(return_id) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql 
    791.   cursor = super(SQLInsertCompiler, self).execute_sql(None) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql 
    735.   cursor.execute(sql, params) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/db/backends/util.py" in execute 
    34.    return self.cursor.execute(sql, params) 
File "/Users/AndyFang/Desktop/planamo/venv/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py" in execute 
    44.    return self.cursor.execute(query, args) 

Exception Type: IntegrityError at /admin/auth/user/add/ 
Exception Value: duplicate key value violates unique constraint "planamocal_userprofile_user_id_key" 
DETAIL: Key (user_id)=(23) already exists. 

कैसे इस त्रुटि को ठीक करने के लिए:

यहाँ पश्व-अनुरेखन है?

उत्तर

6

समस्या तब होती है क्योंकि ऐसा प्रतीत होता है कि आप उपयोगकर्ता प्रोफ़ाइल बनाने और व्यवस्थापक में एक साथ अन्य मॉडल जोड़ने की कोशिश कर रहे हैं।

चूंकि अन्य मॉडल उपयोगकर्ता निर्माण से जुड़ा संकेत है, इसलिए, यह असंभव है।

बदलें कार्य प्रवाह इस तरह है कि आप, उपयोगकर्ता बनाने के उपयोगकर्ता बचाने के लिए, प्रोफ़ाइल बनाते हैं, प्रोफ़ाइल को सहेजने और अन्य मॉडल जोड़ने, प्रोफ़ाइल सहेजें (इस क्रम में)

+0

वहाँ मुझे एक बनाने के लिए सक्षम होने के लिए के लिए एक रास्ता है व्यवस्थापक इंटरफ़ेस में एक पॉप्युलेट प्रोफ़ाइल के साथ उपयोगकर्ता? – fangsterr

संबंधित मुद्दे