私は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 %}
session を使用してこれらのビューにメッセージを渡す方法と場所は?