Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Userena:覆盖配置文件编辑表单_Django_Forms_Url - Fatal编程技术网

Django Userena:覆盖配置文件编辑表单

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') 自定义视图

这是我第一次使用Userena,我正在尝试覆盖配置文件编辑表单,这样它就不会显示照片或隐私设置。这是我迄今为止的尝试(从本页开始)

我创建了一个应用程序,使用下面的URL截取指向
'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视图