Скорее всего, не вижу чего-то очевидного, но тем не менее прошу вашей помощи.
Ошибка: Forbidden (403) CSRF verification failed. Request aborted.
views.py
def addCom(request):
if request.method == "POST":
message = request.POST["addcom"]
print("-->" + str(message) + "<--")
else:
print(print("-->" "ЧТО-ТО НЕ ПОЛУЧИЛОСЬ" + "<--"))
s = str(request)
pos = s.find("ID=") + 3
pos1 = s.rfind("%7D")
pos2 = s.find("!")+1
pos3 = s.rfind("??")
ip = s[pos:pos1]
objID = s[pos2:pos3]
con = sqlite3.connect('users.db')
cur = con.cursor()
cur.execute('SELECT objName FROM objID_objName WHERE objID = "{}"'.format(objID))
name = cur.fetchall()
name = name[0][0]
print("-->" + str(name) + "<--")
print("-->" + str(objID) + "<--")
cur.execute('SELECT * FROM ip_ipINT_port_stat_prot_serv_objID WHERE ip = "{}"'.format(ip))
table_test = []
for row in cur.fetchall():
table_test.append(row)
f = open("viewInfo/static/assets/{}-XML".format(name), "r")
file = f.read()
date = file[file.find("initiated")+9:file.find(" as: ")]
context = {'ip': ip, 'name': name, 'objID': objID, 'table_test': table_test, 'date': date}
return render_to_response("info.html", context)
Логику можно не рассматривать, суть не в ней. Достаточно посмотреть первые строки.
.html
<form action="/viewInfo/addCom?projectID={{ip}}}!{{objID}}??" method="post">
{% csrf_token %}
<label for="addcom">Добавить комментарий: </label>
<p><textarea id="addcom" rows="8" cols="50" name="addcom"></textarea></p>
<button type="submit" value="Добавить", class="btn btn-primary">Добавить</button>
</form>
В чем может быть проблема? В других местах делаю аналогично и все работает...
Попробуйте заменить render_to_response()
(которая устарела) на render()
, которая принимает request
в качестве первого аргумента.
В документации сказано, что для корректной работы защиты от CSRF нужно рендерить ответ с помощью RequestContext()
. Функция render()
использует его по умолчанию.
from django.shortcuts import render
def addCom(request):
....
return render(request, "info.html", context)
По-моему, у Вас лишняя фигурная скобка в форме html, в action после ip, попробуйте исправить.
Всем привет, есть такой код который я не могу допилить чтобы он выполнял одно и то же действие до определённого периода те
Как можно получить с помощью библиотеки AsterNET получить ссылку на файл записи разговора в Asterisk? Есть CRM, в ней есть библиотека AsterNETПри входящем...
на шарпе написана DLL вызывается в С++, в DLL передаю строку и обратно должен получить строку, но как ее вывести на экран
Необходимо вывести на странице с галереей изображения в том порядке в котором я их располагаю в редакторе gutenberg, а wp выводит их в порядке добавления...