У меня есть две страницы, содержащие form. Однако обе страницы отправляют почтовый запрос на одну и ту же страницу. Как отличить, какая страница отправила запрос.
dummy.html (первая страница)
<form action="/nda" method='POST'>
{% csrf_token %}
<button type="submit" name="submit" id="submit" value="I Agree" target="_blank">I Agree</button>
<button onclick="window.open('/greeting')" target="_blank"> I Disagree </button></br>
</form>
Эта страница перенаправляет на страницу nda.
nda.html (вторая страница)
Эта страница также перенаправляет на ту же страницу.
<form action="/nda" method='POST'>
{% csrf_token %}
<button type="submit" name="submit" id="submit" value="I Agree" target="_self">I Agree</button>
<button onclick="window.open('/greeting')" target="_self"> I Disagree </button></br>
</form>
Мой вопрос в том, как мне отличить, на мой взгляд, то, с какой страницы он исходил от фиктивной страницы или той же страницы, которая была nda.
views.py
def nda(request):
if request.method=='POST' :
# if this is from dummy I want to do this
return render(request,'mainapp/nda.html',{'user':email.split('@')[0]})
if request.method=='POST' :
# if this is from same page that is nda I want to do this
return render(request,'mainapp/home.html')
Я не могу понять, как мне обрабатывать оба случая по-разному
page_origin
? (2) Возможно, вы думали оviews.py
как об общем коде для обоих, и только что наткнулись на первый контрпример, так что, возможно, конструкция неверна...? (похоже, вам придется провести рефакторинг в ближайшем будущем, вы могли бы сделать это сейчас и с самого начала). Как уже предложил Кент. Вы, кажется, слишком уверены в своем дизайне, это распространенная ошибка. Отсутствие дублирования некоторого кода в этом случае может быть дорогостоящим. Подумайте еще раз. - person MikeMajara   schedule 28.10.2019