Django Userena:覆盖配置文件编辑表单
这是我第一次使用Userena,我正在尝试覆盖配置文件编辑表单,这样它就不会显示照片或隐私设置。这是我迄今为止的尝试(从本页开始) 我创建了一个应用程序,使用下面的URL截取指向Django Userena:覆盖配置文件编辑表单,django,forms,url,Django,Forms,Url,这是我第一次使用Userena,我正在尝试覆盖配置文件编辑表单,这样它就不会显示照片或隐私设置。这是我迄今为止的尝试(从本页开始) 我创建了一个应用程序,使用下面的URL截取指向'accounts/user/edit'的URL: url(r'^accounts/(?P<username>[\.\w-]+)/edit/$',{'edit_profile_form': CustomEditProfileForm,} ,name='userena_profile_edit') 自定义视图
'accounts/user/edit'
的URL:
url(r'^accounts/(?P<username>[\.\w-]+)/edit/$',{'edit_profile_form': CustomEditProfileForm,} ,name='userena_profile_edit')
自定义视图:
def profile_edit(request, username, edit_profile_form= forms.CustomEditProfileForm,
template_name='userena/profile_form.html', success_url=None,
extra_context=None, **kwargs):
return userena_views.profile_edit(request=request, username=username,
edit_profile_form=edit_profile_form, template_name=template_name,
success_url=success_url, extra_context=extra_context)
我可以从这里很好地找到编辑表单,但是表单看起来还是一样的。有人能帮忙吗?提前谢谢 Userena基本表单应该从Userena.forms导入,而不是从Userena.views导入(这里可能只是输入错误):
Meta
类是可以的,但这样您就完全覆盖了它。一般来说,我更喜欢这样扩展元类:
class Meta(EditProfileForm.Meta):
exclude = EditProfileForm.Meta.exclude + ['mugshot', 'privacy', 'first_name']
因此,不需要重复基类正在做的事情,并且在将来的版本中发生更改时风险更小
最后,您不需要创建自定义视图,只需在URL定义中指定自定义表单即可:
url(r'^accounts/(?P<username>[\.\w-]+)/edit/$',
'userena.views.profile_edit',
{'edit_profile_form': CustomEditProfileForm},
name='userena_profile_edit'),
url(r'^accounts/(?P[\.\w-]+)/edit/$,
“userena.views.profile_edit”,
{'edit_profile_form':CustomEditProfileForm},
name='userena_profile_edit'),
请注意第二行“userena.views.profile_edit”,它引用了普通的userena视图。userena基本表单应该从userena.forms导入,而不是从userena.views导入(这里可能只是输入错误):
Meta
类是可以的,但这样您就完全覆盖了它。一般来说,我更喜欢这样扩展元类:
class Meta(EditProfileForm.Meta):
exclude = EditProfileForm.Meta.exclude + ['mugshot', 'privacy', 'first_name']
因此,不需要重复基类正在做的事情,并且在将来的版本中发生更改时风险更小
最后,您不需要创建自定义视图,只需在URL定义中指定自定义表单即可:
url(r'^accounts/(?P<username>[\.\w-]+)/edit/$',
'userena.views.profile_edit',
{'edit_profile_form': CustomEditProfileForm},
name='userena_profile_edit'),
url(r'^accounts/(?P[\.\w-]+)/edit/$,
“userena.views.profile_edit”,
{'edit_profile_form':CustomEditProfileForm},
name='userena_profile_edit'),
注意第二行“userena.views.profile\u edit”,它引用了普通的userena视图