使用自定义查询集填充FormView

时间:2017-06-08 19:12:47

标签: django django-class-based-views

我想将登录用户的数据设置为个人资料表单。为什么下面的视图不填充模型表单?

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']

我的所有字段都空了。

1 个答案:

答案 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