2010-09-16 17 views
9

पंजीकरण कर रहा है मैं वर्तमान में एक django परियोजना पर काम कर रहा हूँ। मैं अपने उपयोगकर्ता मॉडल में UserProfile मॉडल इनलाइन जोड़ने का प्रयास कर रहा हूं। मेरी models.py में मेरे पास है:Django व्यवस्थापक के साथ समस्या एक इनलाइन उपयोगकर्ता प्रोफ़ाइल व्यवस्थापक

class UserProfile(models.Model): 
    ''' 
    Extension to the User model in django admin. 
    ''' 
    user = models.ForeignKey(User) 
    site_role = models.CharField(max_length=128, choices=SITE_ROLE) 
    signature = models.CharField(max_length=128) 
    position_title = models.CharField(max_length=128) 
    on_duty = models.BooleanField(default=False) 
    on_duty_order = models.IntegerField() 

मेरी admin.py में मेरे पास है:

class UserProfileInline(admin.StackedInline): 
    model = UserProfile 

class UserAdmin(admin.ModelAdmin): 
    inlines = [UserProfileInline] 


admin.site.unregister(User) 
admin.site.register(User, UserAdmin) 

जब मैं (हाँ, मैं इसे पुन: प्रारंभ किया है) मैं निम्नलिखित अपवाद विकास सर्वर चलाएँ:

NotRegistered at /admin 
The model User is not registered 

यह अपवाद admin.site.unregister(User) लाइन से आ रही है।

हालांकि, जब मुझे लगता है कि लाइन बाहर टिप्पणी, मैं निम्नलिखित अपवाद:

AlreadyRegistered at /admin 
The model User is already registered 

मेरी Django स्थापना के बारे में कुछ एक छोटे से द्वि-ध्रुवीय हो रहा है। मैंने इस समस्या का शोध करने में एक घंटे या उससे भी अधिक समय व्यतीत किया है और मुझे लगता है कि कोड दूसरों के लिए अच्छा काम करता है। क्या किसी के पास कोई अंतर्दृष्टि है कि यह क्यों हो रहा है?

धन्यवाद, ट्रैविस

उत्तर

19

मेरा अनुमान है कि आप या तो आयात करने कुछ पागल मॉड्यूल क्या कर रहे हैं ... या ... आप अपने settings.INSTALLED_APPS सूची में एक आदेश देने की समस्या है है। सुनिश्चित करें कि आपके व्यवस्थापक पर डिफ़ॉल्ट व्यवस्थापक को प्रतिस्थापित करने से पहले 'django.contrib.auth' आपकी सूची में दिखाई देता है। सूची कुछ इस तरह दिखना चाहिए:

INSTALLED_APPS = (
    # django apps first 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 

    # your stuff from here on 
    'yourproject.userstuff', 
) 

इस तरह Django के एप्लिकेशन User मॉडल पंजीकृत करता है, और फिर आप को अपंजीकृत करें और इसे अपने ModelAdmin साथ पुन: पंजीकृत।

+0

मेरी समस्या स्थापित ऐप्स का क्रम था। (माथे के लिए smacks) "दुह !!!" Federico आपकी मदद के लिए बहुत बहुत धन्यवाद! – TravFisch

+0

मुझे यह कभी नहीं मिला। Django इस मामले में "पंजीकृत नहीं" अपवाद के साथ बहुत उपयोगी नहीं है! धन्यवाद! – kissgyorgy

+0

जीवन-बचत टिप्पणी बहुत बहुत धन्यवाद – ritmatter

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