使用自定义查询集填充 FormView

Populating a FormView with custom queryset

我想将登录用户的数据设置为配置文件表单。为什么下面的视图没有填充模型表单?

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

我所有的字段最终都是空的。

对于单个对象视图,您需要覆盖 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