为了在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)
我认为问题在于视图,但我无法弄清楚。 谁能帮我吗? 感谢。
答案 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。