1

我创建了自己的get_object方法来使用来自self.request.user.

下面的代码给了我所有的字段,auth_user而不是只是usernameemail

我究竟做错了什么?

class UserUpdateView(UpdateView):
  model = User
  fields = ['username', 'email']

  def get_object(self):
     return get_object_or_404(self.model, pk=self.request.user.id)
4

1 回答 1

3

Django < v1.6 不支持使用该fields属性。相反,提供一个自定义 ModelForm:

# forms.py
from django.forms import ModelForm


class UserUpdateForm(ModelForm):
    class Meta:
        model = User
        fields = ['username', 'email']


# views.py
class UserUpdateView(UpdateView):
    model = User
    form_class = UserUpdateForm

    # Parameters should match your superclass's parameters or have *args and **kwargs
    def get_object(self, queryset=None):
        return get_object_or_404(self.model, pk=self.request.user.pk)
于 2013-08-12T12:24:04.490 回答