2010-09-16 13 views
9

Şu anda bir django projesi üzerinde çalışıyorum. Kullanıcı modelime bir UserProfile modeli satır içi eklemeye çalışıyorum. Benim models.py ben vardır: Benim admin.py olarakDjango yönetici ile bir satır içi kullanıcı profili yöneticisi kayıt sorunu

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() 

Ben:

class UserProfileInline(admin.StackedInline): 
    model = UserProfile 

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


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

ben (evet, bunu yeniden başlattıktan sonra) aşağıdaki özel durum alıyorum geliştirme sunucusu çalıştırdığınızda:

NotRegistered at /admin 
The model User is not registered 

Bu istisna, admin.site.unregister(User) satırından geliyor. O satırı dışarı yorum yaparken

Ancak, ben şu istisna olsun: my Django kurulumu hakkında

AlreadyRegistered at /admin 
The model User is already registered 

şey biraz bi-polar gibi görünüyor. Bu problemi araştırmak için bir saat ya da öylesine harcadım ve sahip olduğum kod başkaları için harika çalışıyor. Bunun neden olabileceğine dair herhangi bir fikri var mı?

sayesinde Travis

cevap

19

benim tahminim ya ... ithal bazı çılgın modülü yapıyoruz ya ... Eğer settings.INSTALLED_APPS listedeki bir sipariş sorunu olması. Uygulamanızdan önce varsayılan yöneticiyi değiştiren listenizde 'django.contrib.auth''un göründüğünden emin olun.

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', 
) 

Bu şekilde Django'nın uygulaması User modelini kaydeder ve sonra kaydını ve kendi ModelAdmin ile yeniden kayıt: listesi bu gibi görünmelidir.

+0

Sorunum, yüklü Apps sırasıydı. (fors headhead) "Duh !!!" Yardımlarınız için çok teşekkür ederim Federico! – TravFisch

+0

Bunu asla kendim öğrenemedim. Django bu durumda "Kayıtlı Değil" İstisnası ile çok yararlı değil! Teşekkürler! – kissgyorgy

+0

Hayat kurtaran yorum çok teşekkürler – ritmatter

İlgili konular