当前位置:  开发笔记 > 编程语言 > 正文

Django:从formset中获取表单id

如何解决《Django:从formset中获取表单id》经验,为你挑选了1个好方法。

我不确定标题是否能准确描述我想要的内容.我想要的是实现类似的东西:Django添加/删除表单而无需多次提交.

但我没有列出我有表格和表格的项目.此formset的形式包含我可用于创建类似{%url'item_edit'item.id%}的链接的信息.问题是它是隐藏字段的值.在这里(http://docs.djangoproject.com/en/dev/topics/forms/#looping-over-the-form-s-fields)您有一个选项列表,如何在模板中使用表单的字段,但它们都不是{{field.value}}.如果我尝试过,那么它就会默默地失败.

无论如何.到代码.我在模板中有的是:

    
{{ form.as_table }} {{ formset.management_form }} {% for form in formset.forms %} {% if forloop.first %} {% for field in form.visible_fields %} {% endfor %} {% endif %} {% for field in form.visible_fields %} {% if not forloop.last %} {% else %} {% endif %} {% endfor %} {% endfor %}
{{ field.label }}
{{ field }}{{ field }} {% endif %} {% endfor %} {% for field in form.hidden_fields %} {% if not forloop.last %} {{ field }} {% else %} {{ field }}
 

这给了我这样的内联表格行:


    
    
    
    
    

我正在寻找一些方法来添加这样的链接

REmove 

要不就

REmove

此视图的Urlconf是:

url(r'^removeitem/(?P\d+)/$', 'remove_list_item', name='remove_list_item')

那么是否有一些简单的方法从表单中获取项目(对象)的id?我是否必须为删除链接创建某种小部件?

艾伦.



1> stefanw..:

首先,您不应该使用链接(GET请求)来触发编辑或删除数据的操作,您应该使用POST请求.

您仍然可以通过JavaScript创建一个链接来删除数据,并使用他们的click-Event来发出Ajax POST请求.使用JavaScript,您还可以轻松地从隐藏字段中读取ID.如果您的表单在没有JavaScript的情况下可以使用(它应该),那么您应该创建另一个表单来删除项目(可能只是一个删除按钮).

您应该使用表单进行删除,因为要使Djangos CSRF-Middleware正常工作,您需要表单.CSRF中间件应该在您的中间件堆栈中.

如果使用对象初始化Django表单(如您所愿),则对象的字段存储在名为initial的字典中.您可以通过form.initial["id"]模板或模板说话来访问它{{ form.initial.id }},但我不确定它是否有效或是否是一个好主意.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有