用于auth_user的django UpdateView

时间:2013-08-12 12:14:46

标签: django

我创建了自己的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)

1 个答案:

答案 0 :(得分:3)

使用fields属性isn't supported in Django < v1.6。相反,提供自定义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)