【问题标题】:Django Admin and DajaxDjango 管理员和 Dajax
【发布时间】:2011-02-02 19:05:50
【问题描述】:

我对使用任何与 ajax 相关的东西都不熟悉,所以请原谅我的无知。

我正在使用示例 here 并试图让它在 Django Admin 中工作。我正在为将要使用的模型创建自定义更改表单。

我遇到的问题是,在第一个选择框中进行选择后,第二个框没有任何反应。我尝试过同时使用原型和 jquery,但似乎两者都没有。
为了让它调用 ajax.py 中的函数,我必须做的一件事是,我必须在 onchange 中传递的 Dajax.process 变量周围添加引号。

我目前只是使用 django 开发服务器进行测试。

我错过了什么?

【问题讨论】:

  • 你能详细说明你是如何在 django admin 中使用 dajax 的吗?我有类似的问题,但找不到任何示例如何做到这一点。如果你能告诉我你是如何解决这个问题的,或者你是如何使用“django-dynamic-choices”的,那将非常有帮助。
  • 如果我记得,我最终改用了github.com/digi604/django-smart-selects。
  • 谢谢。你有没有机会记得你是如何在 admin 中使用它的?
  • 对于 django-smart-selects,我只是按照他们在文档中列出的示例进行操作。

标签: javascript jquery ajax django


【解决方案1】:

因此,为了做到这一点,您需要共同完成几件事:

至少:

  • 处理您的请求的 URL 模式。
  • 返回数据的视图方法
    您需要的任何形式。
  • 一个 JavaScript 文件,它包含 你需要的事件处理程序,你 可以通过表单的媒体添加 财产,或将其包括在 更改表单模板。

可能:

  • 覆盖内置的模板 管理模板以满足您的需求。
  • 一个自定义表单类来保存 Ajax 的价值。

从那里,您可以使用 FireBug 或 Fiddler 来确保您正在传入,并从您的 Ajax 调用中取回正确的值。

您还需要处理编辑记录,您需要触发 Ajax 调用以根据对象的现有值填充动态表单。

编码愉快!

【讨论】:

  • 看来 ajax.py 函数正在返回它应该返回的值,我能够从脚本将它们打印到控制台。但是,管理页面 (change_form.html) 不会刷新第二个选择框的值。看到我几乎只是复制和粘贴示例,我认为它应该可以工作。对不同的示例使用相同的设置here,它工作得很好。你有什么例子可以说明问题吗?
  • 我建议使用您自己的代码。您将对正在发生的事情进行更严格的控制。尝试调试别人的“黑匣子”通常比编写自己的“黑匣子”要花费更多时间。
  • 我在周末发现了这个django-dynamic-choices,它实际上可能符合我的要求。如果没有,这可能是一个起点。
  • 感谢您的反对。如果您有更好的答案,请发布。恶意的反对票很糟糕。
猜你喜欢
  • 2016-07-18
  • 2012-02-28
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 2014-09-01
相关资源
最近更新 更多