【发布时间】:2012-02-13 18:35:29
【问题描述】:
全部,
我正在视图中显示模型表单集。我正在使用 JQuery 动态表单集插件 [http://code.google.com/p/django-dynamic-formset/] 来处理在该表单集中添加/删除单个表单。
当我添加一个新表单时,我想让用户选择从数据库中选择一个模型来填充该表单。我使用 AJAX 调用 Django 视图获取可用模型。另一个 AJAX 调用获取与所选模型对应的表单的form.initial 数据。我的问题是如何获取初始数据并在模板上(在客户端 - 在 JavaScript 中)使用它填充新添加的表单。以下是一些相关代码:
查看以获取初始数据:
def get_content(request):
app_to_get = request.GET.get('a', None)
model_to_get = request.GET.get('m', None)
id_to_get = request.GET.get('i',"")
if not app_to_get and not model_to_get and not id_to_get:
print "invalid or incomplete app/model/id combination"
raise Http404()
id_to_get = int(id_to_get)
# these two fns get me the appropriate classes for the model_to_get
# they work and are irrelevant for my current question
model_class = get_model_from_name(model_to_get,app_to_get)
form_class = get_form_from_model(model_class)
model = model_class.objects.get(pk=id_to_get)
form = form_class(instance=model)
formTemplate = Template("{{ form.initial }}")
formContext = Context({"form" : form})
return HttpResponse(formTemplate.render(formContext));
这里有一些 JavaScript:
function add_model() {
var url = window.document.location.protocol + "//" + window.document.location.host + "/get_content/";
url += "?a=" + app_to_add_to + "&m=" + model_to_add + "&i=" + id_to_add;
$.ajax({
url : url,
type : 'get',
success : function(data) {
alert(data);
/* I AM HERE I AM HERE I AM HERE */
}
});
return true;
};
此时,data 看起来像这样:
{'url': u'http://www.foo.com/', 'id': 2, 'title': u'foo'}
但我不知道如何将这些数据映射到我新添加的表单。
【问题讨论】:
标签: javascript jquery django django-forms