我创建了自己的get_object
方法来初始化包含self.request.user
数据的更新表单。
以下代码为我提供了auth_user
的所有字段,而不仅仅是username
和email
。
我做错了什么?
class UserUpdateView(UpdateView):
model = User
fields = ['username', 'email']
def get_object(self):
return get_object_or_404(self.model, pk=self.request.user.id)
答案 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)