我有一个UpgradeView
与 django 管理员一样的保存可能性。我可以保存、保存并继续编辑或保存并创建一个新对象。
每个导致不同的观点:
DetailView
,UpdateView
和CreateView
.
保存后,我想在每个视图或模板上发出一条消息。例如“成功保存”或“无法保存对象”。
编写自定义模板标签对我来说变得非常困难,因为在我创建标签之后,我不知道如何、在何处以及何时将消息传递给其他视图。
这就是UpdateView
我来自的地方。
class TopicEditView(UpdateView):
fields = ['title','description',]
model = Topic
...
def get_success_url(self):
if self.request.POST.get('save'):
return reverse('topic_detail', kwargs={'pk':self.object.pk})
elif self.request.POST.get('save_and_continue'):
return reverse('topic_edit', kwargs={'pk':self.object.pk})
elif self.request.POST.get('save_and_create_new'):
return reverse('topic_create')
else:
return reverse('fallback_success_url')
我的自定义模板标签仍然是空的,因为我看到的唯一示例对我来说很难理解。
@register.inclusion_tag('msg.html', takes_context=True)
def get_msg(context):
return None
在里面'msg.html'
我只有字符串说“成功保存”,这确实没有任何结果,我忘记了我为什么这样做。
这是在我的模板中(什么都没有):
{% load msg_handler %}
{% get_msg %}
如何以及在何处使用会话将消息传递给这些视图?