0

我想知道正确的方法是什么,

我是否在我的 ModelForm 中创建 HiddenInput 字段,并从视图中将要编辑的模型的 primaryKey 传递到 hiddenInput 字段中,然后从 AJAX 脚本中获取这些 hiddenInput 字段以像这样使用它?

item.load(
        "/bookmark/save/" + hidden_input_field_1,
        null,
        function () {
          $("#save-form").submit(bookmark_save);
        }
);

还是有一些更聪明的方法,我不知道?

谢谢

4

2 回答 2

0

这取决于您要如何实现。基本思想是编辑 1. 你需要获取现有的实例, 2. 将提供的信息保存到这个对象中。

对于#1,您可以通过多种方式进行操作,例如传递ID或任何其他主键(例如 url 中的属性)http://myserver/edit_object/1,或者ID作为隐藏输入传递,然后您必须通过模板进行操作。

对于#2,我想你已经知道了。做类似的事情

inst = MyModel.objects.get(id=input_id) # input_id taken as per #1
myform = MyForm(request.POST, instance=inst)
if myform.is_valid():
    saved_inst = myform.save()
于 2012-07-17T04:09:18.060 回答
0

我刚在 django IRC 房间里问过,它说:

由于 django 模板引擎不处理 js,因此这是不可能的。

因此,无法在 AJAX 脚本中访问从 django 视图传入的 id 或对象。

于 2012-07-20T22:32:22.627 回答