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 に答える