Django更新视图不​​保存

时间:2014-01-08 04:01:24

标签: python django django-generic-views

为了在url中使用不带pk的UpdateView,我重写了get_object函数,但是,当我测试它时,表单没有保存。 涉及两个模型:用户和个人资料,具有OnetoOne关系。

我的网址如下:

url(r'^profile/edit/$', profileviews.ProfileUpdateView.as_view(template_name="Pages_Profile/profileupdate.html"),name="profileupdate_URL"),

视图类是:

class ProfileUpdateView(UpdateView):
   model = Profile
   form_class = UserProfileForm

   def get_object(self, queryset=None):
       return get_object_or_404(self.model, user=self.request.user)

   @method_decorator(login_required)
   def dispatch(self, request, *args, **kwargs):
       return super(ProfileUpdateView, self).dispatch(request, *args, **kwargs)

我认为问题在于视图,但我无法弄清楚。 谁能帮我吗? 感谢。

1 个答案:

答案 0 :(得分:0)

有一个名为django-braces的项目,其中包含一大堆非常有用的通用视图混合,以帮助使用Django CBV(基于类的视图):

from braces.views import LoginRequiredMixin

class ProfileUpdateView(LoginRequiredMixin, UpdateView):
   model = Profile
   form_class = UserProfileForm

   def get_object(self, queryset=None):
       return get_object_or_404(self.model, user=self.request.user)

您可以找到更多相关信息here