需要召回一个TAG来刷新TAG用新DATA创建的DIV,怎么做?

时间:2011-03-08 17:45:04

标签: python ajax django

我从视图中生成了一个html页面(“ContactMaster.html”)。 ContactMaster.html使用自定义模板标记在DIV中创建FORM。

  • 自定义模板标记(%form%---%endform%)创建一个DIV,其中包含从模型生成的空表单。

    -  class PrefixForm(ModelForm)
           class Meta:
               model = Prefix
    
  • 自定义模板标记使用文件“formJson-reload.html”并呈现所提供的数据(PrefixForm,'classDiv'等)

现在我希望FORM(在自定义模板标记生成的DIV内)加载特定PK的数据(填写相应的字段)。所以我可以编辑它并稍后保存。

  • 我该怎么做?欢迎提出任何意见或建议。谢谢 !!

    选项:

    1. 我认为使用AJAX,我可以检索表单所需的数据,并使用此数据加载表单的字段或
    2. 以某种方式回忆 custome模板标记(%form% - %endform%)并传递带有所需数据的表单(带有PK的表单实例)

感谢您的时间!!


以下是更多信息:

使用自定义模板标记

的示例
            {%form%}
            START_DICT
                {
                'classDiv' : 'container',
                'classDiv'  : 'module',
                'divId'     : 'Prefix',
                'title'     : 'Prefix JSON',
                'formId'    : 'PrefixForm',
                'classForm' : 'None',
                'idSubmit'  : 'SendPrefix',
                }
            END_DICT
            START_FORM
                PrefixForm
            END_FORM
            FILE:"formJson-reload.html"
            {%endform%}

视图的摘录,创建包含此自定义模板标记的整个网页

@login_required
def ContactMaster(request):
    Forms = ['Prefix',]
    dic_return = help_get_forms(Forms,request)

    return render_to_response('ContactMaster.html',dic_return,
       context_instance=RequestContext(request))

摘录“formJson-reload.html”:

        <div class="{{classDiv}}"  id="{{divId}}"  title="{{title}}">
            <form  id="{{formId}}" method="post" action="item_form"
                   {% if classForm != "None" %}
                        class="{{classForm}}>
                   {% else %}
                        >
                   {% endif %}
            <table id="T_{{formId}}">
                <tbody>
                    {%for field in set %}
                        {% if field.label != "Owner" %}
                            {% if field.label != "owner"  %}
                    <tr>  
                        <td>
                            {{field.label_tag}} :
                        </td> <td>  {{field}}
                         {% if field.field.required %}<em>*</em>{% endif %}
                        </td>
                    </tr>
                            {% endif %}
                        {% endif %}

                    {%endfor%}
                </tbody>
            </table>
            <input type="submit" id="{{idSubmit}}" value="Add"
                   onclick="submit('{{formId}}');
                       return false;" />
            </form>
        </div>

1 个答案:

答案 0 :(得分:0)

如果您已经加载了页面并且不想重新加载完整页面,那么您肯定需要AJAX。这正是该缩写的第一个A(异步)所代表的:加载内容而不重新加载整个页面。据我所知,你也必须扩展你的观点。你可以在这里找到ajax和django的一个很好的例子:
http://www.b-list.org/weblog/2006/jul/02/django-and-ajax/
或者在这里:
http://lethain.com/entry/2007/dec/11/two-faced-django-part-5-jquery-ajax/
这两篇文章应该从你的权利开始。打架吧:)

如果您只是在谈论使用django中的数据从模板生成表格时填充表单,我想您正在阅读Django文档的这篇文章:
http://docs.djangoproject.com/en/1.2/topics/forms/