0

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

在 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'),

所以我的问题是,这带来了连接到用户配置文件的所有可能选项(他们可以让自己成为超级用户,等等。)

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

任何帮助表示赞赏!谢谢

4

1 回答 1

0

问题是,没有exclude选项UpdateView

您可以定义一个表单exclude作为字段

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

如果需要,请参阅此文档进行验证

于 2013-08-13T17:19:41.033 回答