[Django]アドレスバーのURLが更新されない問題について
Q&A
Closed
解決したいこと
Django3.2.5を使っています。
FormViewを継承したクラスからフォーム処理の後にrenderで指定したurlに画面遷移させたいのですが、画面自体は遷移しますが遷移後もブラウザのアドレスバーのurlが遷移元のままなため、リロードすると二重登録されてしまいます。アドレスバーに表示されるurlが遷移先のものになるようにしたいのですがなかなか解決に至りません。
解決に向けたヒントなど頂けましたら幸いです。
views.py
class ShowHogeList(LoginRequiredMixin,ListView):
model = hogelist
template_name = 'show_hogelist.html'
def post(self,request,*args,**kwargs):
...
return self.render_to_response(context)
class PostHoge(LoginRequiredMixin,FormView):
template_name = 'post_hoge.html'
form_class = PostHogeForm
success_url = '/show_hogelist/'
def form_valid(self,form):
...
return render(self.request,'show_hogelist.html',context)
post_hoge.html
<div>
<form action="{% url 'hoge:posthoge' %}" method="POST">
{% csrf_token %}
{{ form }}
<button textarea='post_data' formaction='../post_hoge/' type="submit" name="button" value="{'user':'{{user}}',...}">投稿</button>
</form>
</div>
なお、formacitonはpost_hoge(遷移元のまま)としたいので、show_hegelistに変更せずに対処したいところです。
show_hogelist.html
<ul>
{% for one in talks %}
<div>
{{ one }}
</div>
{% endfor %}
</ul>
ここは、単なるリスト表示だけです。この画面に遷移しますが、ブラウザのアドレスバーはpost_hoge.htmlのままです。
自分で試したこと
1週間ネットや書籍を調べ続けましたが、今のところ解決できずにいます。
##よろしくお願いいたします。