2011-01-08 118 views
2

我試圖擴展用戶配置文件。我創建了一些解決方案,但最推薦的是創建包含外鍵的新用戶類到原始django.contrib.auth.models.User類。我this做到了,所以我有models.py修改默認用戶模型後,Django管理面板不起作用

class UserProfile(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    website_url = models.URLField(verify_exists=False) 

,並在我的admin.py

from django.contrib import admin 
from someapp.models import * 
from django.contrib.auth.admin import UserAdmin 

# Define an inline admin descriptor for UserProfile model 
class UserProfileInline(admin.TabularInline): 
    model = UserProfile 
    fk_name = 'user' 
    max_num = 1 

# Define a new UserAdmin class 
class MyUserAdmin(UserAdmin): 
    inlines = [UserProfileInline, ] 

# Re-register UserAdmin 
admin.site.unregister(User) 
admin.site.register(User, MyUserAdmin) 

而現在,當我試圖創建管理面板/編輯用戶,我有一個錯誤: "Unknown column 'content_userprofile.id' in 'field list'"其中content是我的appname。

我試圖將行AUTH_PROFILE_MODULE = 'content.UserProfile'添加到我的settings.py但沒有任何效果。

如何告訴面板管理員知道如何正確顯示用戶形式的字段?

回答

2

一番努力後,我發現工作液:

  1. AUTH_PROFILE_MODULE = 'content.UserProfile'需要
  2. 請放下你的數據庫(AUTH_USER,yourapp_userprofile表應該是足夠了)
  3. 終於python manage.py syncdb