python - 在 Django 视图中散列
问题描述
我通过将数据附加到我的元素来通过 ajax 传递数据。数据是敏感的,如果用户更改它,他们可能会更改另一个用户的关联字段(不像密码那样敏感)。
在此页面上,教师可以查看他们的学生。教师可以选择学生已完成课程的复选框。所以我不能只从请求中获取学生(当前用户)。
我想在将这些数据(student_id)插入模板之前对其进行哈希处理,然后在我从 ajax 收到它时在我的视图中取消它。我在 Django 中找不到如何做到这一点。
<form>
{% csrf_token %}
# student_id is the sensitive data
<td class='class_complete' student_id='{{ student.student.id }}' name='completed' value='{{ class.id }}'>{{ item.completed }}</td>
</form>
def post_form_api(request):
data = {}
if request.method == "POST":
class_id = request.POST.get("class_id")
student_id = request.POST.get("student_id")
student_class_data_entry = get_object_or_404(StudentClassData, student_id=student_id, class_id=class_id)
form = StudentClassDataForm(request.POST, instance=student_class_data_entry)
[.. other logic .]
if form.is_valid():
form.save()
data = {'result' : True}
if request.is_ajax():
return JsonResponse(data)
else:
return HttpResponseBadRequest()
$(".class_complete").click(function(e){
var csrfToken = $("input[name='csrfmiddlewaretoken']");
class_id = $(this).attr('value');
student_id = $(this).attr('student_id');
var checked = $('#'+e.target.id).is(":checked");
$.ajax({ url: "/api/post_form/",
type: "POST",
dataType: "json",
data: {'completed':checked, 'student_id':student_id, 'class_id':class_id, 'csrfmiddlewaretoken':csrfToken.val()},
cache: false
}).done(function(data) {
if (data.result === true){
}
else {
}
});
});
谢谢你。
解决方案
推荐阅读
- visual-c++ - 树数据结构:我无法获得任何数据输出
- javascript - VueX:如何在页面加载时调用 action.js 方法?
- git - 当功能分支上的特定文件夹发生更改时运行作业,否则无论更改如何都在 master 上运行作业
- powershell - 使用过滤器从列表中获取计数的 Powershell 脚本
- javascript - 在表单执行其操作之前,进行 ajax 调用的表单 onsubmit 不会返回。但是适用于mac但不适用于PC
- r - py_call_impl(callable, dots$args, dots$keywords) 中的错误:ValueError: Empty training data
- c# - 强制 SUM 方法在适用于 EF Core 时返回 NULL
- python - 字典之类的字符串到熊猫数据框的列表
- excel - 查找匹配单元格的列号
- c# - 按下键时 Unity 重置 Oculus 位置