ここに私の問題があります:
同じページのフォームを使用してフィルタリングできるメッセージのリストがあります。また、リストの下にあるメッセージの 1 つをクリックして表示することもできます。
私の問題は、リストをフィルタリングしてからメッセージを選択して表示すると、リストをフィルタリングする GET データが「失われる」ことです。そのため、すべてのメッセージが再びリストに表示されます。
メッセージを表示し、メッセージをクリックしたときのリストを保持するにはどうすればよいですか?
私のURL:
url(r'^inbox/$', view='inbox', name="kernel-networking-messages-inbox"),
url(r'^inbox/(?P<message_pk>\d+)/$', view='inbox_message', name="kernel-networking-messages-inbox-read"),
私の見解:
class InboxView(SearchViewMixin):
template_name = "kernel/networking/messages/inbox.html"
form_class = InboxForm
inbox = InboxView.as_view()
class InboxMessageView(InboxView):
def dispatch(self, request, *args, **kwargs):
self.message = get_object_or_404(Message, pk=kwargs['message_pk'])
return super(InboxMessageView, self).dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super(InboxMessageView, self).get_context_data(**kwargs)
context['message'] = self.message
return context
inbox_message = InboxMessageView.as_view()
inbox.html:
<form action="" method="get">
...
<input type="submit" value="Search"/>
<table>
...
</table>
{% if message %}
// display message
{% endif %}
私はできるだけ明確にしようとしました:/