Django success.messageについて
解決したいこと
お世話になります。
ログイン時とメッセージ送信時に、views.pyに
messages.success(request,'ログインに成功しました。')
messages.success(request, '送信に成功しました。')
と書き、runserverしたところログイン時には正しく表示されたのですが、
メッセージ送信画面に進むと、' ログインに成功しました 'と表示されておりました。
ログイン時のmessageが、メッセージ送信画面にも反映されてしまうのを防ぎたいのですが、
方法はございますでしょうか?
どうぞよろしくお願いいたします。
該当するソースコード
views.py
def user_login(request):
login_form = forms.LoginForm(request.POST or None)
if login_form.is_valid():
email = login_form.cleaned_data.get('email')
password = login_form.cleaned_data.get('password')
user = authenticate(email=email, password=password)
if user:
if user.is_active:
login(request,user)
messages.success(request,'ログインに成功しました。')
return redirect('SellText:product_search_view')##
else:
return HttpResponse('アカウントが有効ではありません')
else:
return HttpResponse('ユーザーが存在しません')
return render(request, 'login.html',context={
'login_form':login_form
})
//下記はメッセージ送信画面用です
def not_good_product(request, not_good_product_id):
form = forms.NotGoodProductReportForm(request.POST or None)
product = Product.objects.get(id=not_good_product_id)#商品からユーザーは見つかるから大丈夫
if form.is_valid():
print(1)
form.instance.user = product.user
form.instance.product = product
print(2)
form.save()
messages.success(request, '送信に成功しました。')
print(form.errors)
return render(request, 'bad_report_to_us.html', context={
'product':product,'form':form, })
login.html
{% if messages %}
{% for message in messages %}
<li class="text-center">{{ message }}</li>
{% endfor %}
{% endif %}
bad_report_to_us.html
{% if messages %}
{% for message in messages %}
<li class="text-center">{{ message }}</li>
{% endfor %}
{% endif %}
ユーザー情報の更新ページでもこのような現象が起きており、
このように更新した時だけmessageを表示させたいのですが、ログイン時のmessageがすでに表示されております
0