扩展satchmo用户配置文件

时间:2010-05-13 21:26:09

标签: django django-models django-admin django-templates satchmo

我正在尝试扩展satchmo商店中包含的基本用户注册表单和配置文件,但我遇到了问题。

这就是我所做的:

创建一个新应用“extendedprofile”

编写了一个扩展satchmo_store.contact.models类的models.py并添加了自定义名称字段。

写了一个admin.py,取消注册Contact类并注册我的newapp,但这仍然显示默认的用户配置文件表单。

也许有人可以告诉我这样做的正确方法?

2 个答案:

答案 0 :(得分: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 :(得分:1)

  

写了一个扩展了。的models.py   satchmo_store.contact.models类和   添加自定义名称字段。

     

写了一个取消注册的admin.py   联系课程并注册我的newapp   但这仍然显示我的默认值   用户个人资料表。

这与覆盖django注册用户类有关; satchmo项目为User类创建一个外键(从0.9.2开始)。但您要做的是使用新字段创建扩展的配置文件类。

因此,在这种特定情况下,您需要做一些事情来覆盖显示联系信息的配置文件模板:

  1. 编写自己的模型,将Contact类的子类化(您已经这样做了)
  2. 编写您自己的视图以使用您的新模型类(基于satchmo_store.contact.views,但使用您自己的类而不是Contact类)
  3. 覆盖satchmo_store.contact应用程序的urlpatterns以指向新视图
  4. 使用可编辑表单字段的条目扩展satchmo_store.contact.forms.ExtendedContactInfoForm表单类。
  5. 修改contact/view_profile.html模板以包含自定义名称字段。
  6. 然后,您可能希望取消注册上面的Contact类admin.site.unregister(Contact),并且只管理您的新子类。