我想将登录用户的数据设置为个人资料表单。为什么下面的视图不填充模型表单?
class UpdateProfile(FormView):
model = User
form_class = ProfileForm
def get_queryset(self):
return self.model.objects.get(pk=self.request.user.id)
class ProfileForm(forms.ModelForm):
class Meta:
model = User
fields = ['email', 'name', 'company', 'title']
我的所有字段都空了。
答案 0 :(得分:2)
对于单个对象视图,您需要覆盖get_object
并使用UpdateView
。
所以要获得登录用户,你可以这样做:
from django.views.generic import UpdateView
class UpdateProfile(UpdateView):
model = User
form_class = ProfileForm
def get_object(self):
return self.request.user