传递到django更新视图的成功url的消息
我正在尝试使用通用的CBV UpdateView在更新时传递一条成功消息传递到django更新视图的成功url的消息,django,class,django-views,messages,Django,Class,Django Views,Messages,我正在尝试使用通用的CBV UpdateView在更新时传递一条成功消息 class TribeUpdate(FormMessagesMixin, UpdateView): model = Tribe fields = ['name', 'description', 'cause'] template_name_suffix = '_update_form' form_valid_message = 'success' def get_success_u
class TribeUpdate(FormMessagesMixin, UpdateView):
model = Tribe
fields = ['name', 'description', 'cause']
template_name_suffix = '_update_form'
form_valid_message = 'success'
def get_success_url(self):
return reverse('tribe_detail', kwargs={'tribe_slug' : self.kwargs['slug']} )
def get_object(self, *args, **kwargs):
obj = super(TribeUpdate, self).get_object(*args, **kwargs)
if not obj.creator == self.request.user:
raise PermissionDenied
return obj
def form_valid(self, form):
tribe = Tribe.objects.get(slug=self.kwargs['slug'])
action.send(tribe.creator, verb='updated the tribe', target=tribe)
form.save()
return super(TribeUpdate, self).form_valid(form)
成功消息未显示在成功url页面上。。“详细信息”视图。。当我点击UpdateView时,它会再次出现
任何帮助都将是惊人的,我需要重写form_valid以根据输入将数据保存到表单。在form_valid方法的末尾,您再次调用它自己,因此它将以递归方式进行 你只需要覆盖
return super(TribeUpdate, self).form_valid(form)
到
它会起作用。在表单的末尾,您再次调用了有效的方法本身,因此它以递归的方式运行 你只需要覆盖
return super(TribeUpdate, self).form_valid(form)
到
它会起作用的。谢谢你的回复。这似乎不是问题所在,消息未在成功url视图上设置still@AndrewBlaney您是否启用了django消息应用程序?成功页面模板中是否包含django消息模板代码?如果您在get\u success\u url方法中添加messages.success(self.request,'success'),它会起作用吗?谢谢您的回复。这似乎不是问题所在,消息未在成功url视图上设置still@AndrewBlaney您是否启用了django消息应用程序?成功页面模板中是否包含django消息模板代码?如果在get\u success\u url方法中添加messages.success(self.request,'success'),它会起作用吗?success视图的模板是什么?是否确定要在其上包含消息?成功视图的模板是什么,详细信息?您确定要在上面包含消息吗?