我正在尝试扩展satchmo商店中包含的基本用户注册表单和配置文件,但我遇到了问题。
这就是我所做的:
创建一个新应用“extendedprofile”
编写了一个扩展satchmo_store.contact.models类的models.py并添加了自定义名称字段。
写了一个admin.py,取消注册Contact类并注册我的newapp,但这仍然显示默认的用户配置文件表单。
也许有人可以告诉我这样做的正确方法?
答案 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开始)。但您要做的是使用新字段创建扩展的配置文件类。
因此,在这种特定情况下,您需要做一些事情来覆盖显示联系信息的配置文件模板:
satchmo_store.contact.views
,但使用您自己的类而不是Contact类)satchmo_store.contact.forms.ExtendedContactInfoForm
表单类。contact/view_profile.html
模板以包含自定义名称字段。然后,您可能希望取消注册上面的Contact类admin.site.unregister(Contact)
,并且只管理您的新子类。