允许用户编辑个人资料

时间:2013-08-13 17:13:49

标签: django django-forms

所以这就是我到目前为止:

在Views.py

class ProfileUpdate(UpdateView):
    model = User
    fields = ('username','email', 'password1', 'password2')
    template_name = 'editprofile.html'

    def get_object(self, queryset=None):
        return self.request.user
editprofile.html中的

<form method="post">
   {% csrf_token %}
   {{ form }}
    <input type="submit" />
</form>
在urls.py

url(r'^profile/', ProfileUpdate.as_view(), name='profile'),

所以我的问题是,这会将每个可能的选项提供给用户配置文件(他们可以自己使用超级用户等)。

我知道这一定是一个简单的改变,但对于我的生活,我无法弄明白。

任何帮助表示赞赏! 感谢

1 个答案:

答案 0 :(得分:0)

问题是,exclude

中没有UpdateView选项

您可以定义excludes the fields

的表单
class UserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('username','email', 'password1', 'password2')
        # or 
        #exclude = ('is_superuser',) #and whatever else you wish to exclude.

然后在您的视图中使用此表单

class ProfileUpdate(UpdateView):
    model = User
    form_class = UserForm
    template_name = 'editprofile.html'

    def get_object(self, queryset=None):
        return self.request.user

如果需要,请参阅this documentation for validations