使用自定义查询集填充 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
我想将登录用户的数据设置为配置文件表单。为什么下面的视图没有填充模型表单?
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