保存或查看表单(使用Django模板系统)
Save or view a form (using Django template system)
我有一个表单,它必须有两种提交方式。如果用户按下"添加"按钮,它保存在数据库中,如果用户按下"视图"按钮,表单保存在会话中,所以它只是一个视图。这两个过程都是同步的,每次按下提交按钮都会重新加载页面。
如何在两个不同地址提交表单或如何添加请求。POST变量指定后端逻辑?它是可能的html, django模板系统或javascript?
<table>
<form class="add-cv" method="POST" action="{% url add_cv %}">
{% csrf_token %}
<!--A lot of form fields-->
<tr>
<td>
<input type="submit" value="{% trans "Add" %}">
<input type="submit" value="{% trans "View" %}">
</td>
</tr>
</form>
</table>
将name属性添加到提交的name="submit1"
和name="submit2"
中,然后,您可以在add_cv视图中区分它们:
if "submit1" in request.POST:
do something
elif "submit2" in request.POST:
do something
可以使用javascript或django的view函数。
要将请求发送到视图函数,然后执行相应的操作,请像这样修改html表单:
<table>
<form class="add-cv" method="POST" action="{% url add_cv %}">
{% csrf_token %}
<!--A lot of form fields-->
<tr>
<td>
<input type="submit" name="submit_Add" value="{% trans "Add" %}">
<input type="submit" name="submit_View" value="{% trans "View" %}">
</td>
</tr>
</form>
</table>
这将确保您可以在请求的键中找到'submit_Add'或'submit_Value'。将POST字典发送到视图,具体取决于单击了哪个提交按钮。您可以在视图中这样区分:
def YourView(request):
if "submit_Add" in request.POST:
# Actions to add the values in the database.
elif "submit_View" in request.POST:
# Actions to save the values in the session.
或者您可以使用javascript来区分按钮。(但这将是一个迂回的方法,应该只在您绝对不能重新加载页面时使用。)要使用javascript修改你的html代码,像这样:
<table>
<form class="add-cv" method="POST" action="{% url add_cv %}">
{% csrf_token %}
<!--A lot of form fields-->
<tr>
<td>
<input type="button" onclick="func_Add();" value="{% trans "Add" %}">
<input type="button" onclick="func_View();" value="{% trans "View" %}">
</td>
</tr>
</form>
</table>
在模板中定义这两个函数。
<script type="text/javascript">
function func_Add(){
//Required 'Add' actions.
}
function func_View(){
//Required 'View' actions.
}
</script>
相关文章:
- 在javascript点击事件中调用django-urls
- Django: AJAX + CSRF POST gives 403
- 我的django模板布尔变量是't在javascript中按预期工作
- 数据绑定:'系统Char'不包含名为'xxxxx'
- django模板没有在AJAX发布后重新加载
- jsi18n-django.catogue没有'不包含任何已翻译的字符串(但是djangojs.mo包含)
- Javascript模块系统I'I’我正在努力,但搞不明白
- 是否可以在系统/电脑浏览器中访问手机摄像头
- 设计Django中当前导航菜单项的样式
- Node JS中的排名系统算法
- 任何将(SSH)终端嵌入到一些HTML5表示系统中的想法(例如,show.js)
- Django可以'不能在设置中导入ckeditor,但可以在shell中导入
- 如何在foreach循环中对每个产品单独应用评级系统
- 系统配置默认扩展对 Django 不起作用
- 如何在django上使用javascript创建大厅系统
- Django, Jquery Ajax;投票系统不工作,正在刷新分区
- 保存或查看表单(使用Django模板系统)
- 为一个HTML5 Django web应用实现一个实时通知系统
- 在django模板系统中包含angular
- 将Django评论系统集成到使用javascript和PHP构建的博客中