django-models - 如何使用模板处理器中的 django modelForm?
问题描述
我正在使用 django 模板处理器在所有模板中制作一个 django 模型表单,以便用户可以在所有页面中创建一个新对象。这是 templateprocessor.py 文件
from .forms import CreateForm
def injectCreateForm(request, *args, **kwargs):
form = CreateForm()
return {
"form": form,
}
我通过引导模式在 base.html 中使用了它。
<div class="modal fade" id="createForm" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Creating New Form</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<form method="POST">
{% csrf_token %}
<div class="modal-body">
{{form.project_name|as_crispy_field}}
{{form.project_type|as_crispy_field}}
{{form.key|as_crispy_field}}
</div>
<div class="modal-footer">
<button type="button" id="cancel" class="btn btn-secondary" >Cancel</button>
<button type="submit" id="createBtn" class="btn btn-primary">Create</button>
</div>
</form>
</div>
</div>
现在我的问题是如何使用我尝试过的这种表单使用 ajax,但是 ajax 请求的数据不是表单本身的数据。它的成功源于ajax。
def createAnotherProject(request):
form = CreateForm(request.POST or None)
if request.is_ajax():
print("the request is ajax")
if projectForm.is_valid():
print("the request is ajax and the form is valid")
data = {"projectKey": ""}
return JsonResponse({"data": data})
context = {"form": form}
return render(request, "tracking/base.html", context)
问题是我的表单永远无效,因为视图完全忽略了它。非常感谢任何帮助。提前致谢....
解决方案
推荐阅读
- python - 是否可以在课堂外将类变量作为我的输入?
- php - Laravel - SQLSTATE [HY001] 无法分配足够的内存 - MsSQL
- python - python pandas:如何将单元格的第一部分作为列名,将单元格的第二部分作为列值
- python - 在 Python 3 中有没有更有效的方法来处理这些 for 循环?
- reactjs - 在 React 中,如何在使用函数式组件时记住一个内联函数?
- scala - Kafka Streams 时间窗口聚合
- python - 如何使用熊猫从三列创建时间值
- python - 我正在计算 Pytorch 神经网络回归模型中的平均 RMSE 损失。这是对的吗?
- java - 具有依赖关系的 Spring Boot 项目中的属性层次结构
- mysql - 从与条件匹配的任一表中的值连接的表中选择匹配的行