使用基于类的UpdateView在Django中更新用户模型
|
我正在尝试使用基于类的UpdateView更新Django User模型,该类会自动以当前用户呈现,但是却收到一个错误,提示需要pk或slug。表单可以在当前用户上下文中正常工作并呈现,但是当我尝试提交更改时会引发错误。下面是我正在使用的视图:
class UserUpdateView(UpdateView):
form_class = UserForm
model = User
template_name = \'members/user_update.html\'
def get(self, request, **kwargs):
self.object = User.objects.get(username=self.request.user)
form_class = self.get_form_class()
form = self.get_form(form_class)
context = self.get_context_data(object=self.object, form=form)
return self.render_to_response(context)
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.user = self.request.user
self.object.save()
return HttpResponseRedirect(self.get_success_url())
没有找到相关结果
已邀请:
2 个回复
犀耽澄协吻
方法,并且不需要覆盖form_valid。自定义
方法是:
纤洞需匪
您应该将username参数与实例username参数匹配:
更好的是,使用pk(id):
这样做可能会有更整洁的方式,所以我愿意提出建议。