2010-05-13 34 views
5

我想擴展satchmo商店中包含的基本用戶註冊表單和配置文件,但我遇到了問題。延伸satchmo用戶配置文件

這是我做了什麼:

創建一個新的應用程序「extendedprofile」

寫道,擴展了satchmo_store.contact.models類,並添加自定義名稱字段models.py。

寫了一個admin.py,取消註冊Contact類並註冊我的newapp,但這仍然顯示我默認的用戶配置文件表單。

也許有人可以告訴我正確的方法來做到這一點?

回答

3

這聽起來像是你做得對,但它會幫助你,如果你張貼你的來源。當我走這條路線時,我將擴展配置文件視爲與用戶型號內嵌:

class UserProfileInline(admin.StackedInline): 
    model = UserProfile 
    fk_name = 'user' 
    max_num = 1 
    fieldsets = [ 
     ('User Information', {'fields': ['street', 'street2', 'city', 'state', 'country', 'latitude', 'longitude']}), 
     ('Site Information', {'fields': ['sites']}), 
     ('User Account', {'fields': ['account_balance']}), 
    ] 

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

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

希望可以幫到你。

1

寫道,擴展了 satchmo_store.contact.models類和 添加自定義名稱字段models.py。

寫道,註銷 Contact類和註冊我的NEWAPP 但仍顯示我的默認 用戶配置文件形式的admin.py。

這與覆蓋django註冊用戶類有關; satchmo項目爲User類創建一個外鍵(從0.9.2開始)。但是你想要做的是創建一個擴展的配置文件類與新的領域。

因此,在這種特殊情況下,你會需要做一些事情來覆蓋配置文件模板,顯示聯繫方式:

  1. 寫你自己的模式,繼承Contact類(你已經沒這個)
  2. 寫你自己的看法(S)使用新的模型類(基地satchmo_store.contact.views,但使用的而不是聯繫人類你自己的類)
  3. 重寫URL模式爲satchmo_store.contact應用程序在你點新視圖
  4. 用可編輯表單域的條目擴展satchmo_store.contact.forms.ExtendedContactInfoForm表單類。
  5. 修改contact/view_profile.html模板以包含自定義名稱字段。

然後,您可能需要取消註冊Contact類,如上所示,admin.site.unregister(Contact),並且僅管理您的新子類。