相关疑难解决方法(0)

用于JavaScript的Django reverse()

在我的项目中,我有很多Ajax方法,使用外部客户端脚本(我不想将JavaScript包含在模板中!)和更改URL对我来说很麻烦,因为我需要手动更改Ajax调用中的URL .

有没有办法{% url %}在JavaScript中模拟templatetag 的行为?

例如,从^ajax脚本开始和稍后在脚本中打印urlpatterns会将模式替换为实际值吗?

这就是我的想法,我的问题是 - 是否有任何常见的做法来做这样的事情?也许一些可重用的应用程序?我也很乐意阅读您的任何建议和相关想法.

更新1: 我说的是计算网址,而不是静态网址:

url(r'^ajax/delete/(?P<type>image|audio)/(?P<item_id>\d+)/from/set/(?P<set_id>\d+)/$', 'blog.ajax.remove_item_from_set'),
Run Code Online (Sandbox Code Playgroud)

javascript django url reverse

23
推荐指数
5
解决办法
1万
查看次数

Django:在部署时通过模板引擎呈现静态文件

我想使用Django模板变量渲染一些静态文件(特别是*.js).我相信这是一个常见的用例,尤其是在做任何AJAX-y时; 我不想在我的.js文件中硬编码AJAX网址,只是想在我的.html文件中对它们进行硬编码.Buuuut当然我不希望那些静态文件在每个客户端请求都必须通过模板引擎运行,因为这会很慢.我指的是诸如URL(在编译/部署之后不会改变)或静态(非db)模型属性之类的东西.(我想有些用例可能会在运行时更改这些内容 - 毕竟这是Python,但我认为它们并不常见).对于一些可能的模板变量(例如模型字段),当然必须在客户端请求时呈现文件,但这不是我所说的.

因此,通过模板引擎渲染我的一些静态文件,对于可能的模板变量的子集,可能同时也是如此有意义collectstatic吗?

据我所知,目前情况并非如此.要清楚,我正在寻找的是在编译/部署时通过模板引擎呈现静态文件的解决方案,以便在"客户端请求时"它们实际上是普通的旧静态文件.

这种方法可以避免这些黑客攻击:

免责声明:

  • 是的我知道有javascript的模板引擎(小胡子,把手,原型等).当Django已经有一个时,我为什么要将另一个模板引擎添加到堆栈?加上语法冲突!这看起来很傻.
  • 看起来很难解决,但它很复杂而且没有完全实现.

所以:

  1. 我有什么解决方案吗?
  2. 如果没有,有没有办法挂钩collectstatic(比如一个pre-collectstatic钩子),允许人们在"收集"它们之前通过模板引擎渲染某些静态文件?

编辑:还没有回答......这是一个非常愚蠢的问题,我错过了一些明显的东西?如果是这样......继续告诉我......

javascript python deployment django templates

8
推荐指数
1
解决办法
1006
查看次数

Django:JavaScript 中的反向参数化 url

假设我的一个 urlpatterns 看起来像这样。

url('^objects/update/(?P<pk>\d+)$', views.UpdateView.as_view(), name = 'update-object'),

我需要根据所选对象将用户重定向到更新页面(对象列表是使用 Ajax 填充的)。所以我想将命名的 url模式传递给 JavaScript,以便在客户端构建实际的 url。

我想要实现的目标的示例:

  1. 将名称传递'update-objects'给函数
  2. 获取实际的 url 模式,替换(?P<pk>..){pk}
  3. 将结果传递给 javascript,结果是:objects/update/{pk}

有小费吗?谢谢


更清楚地说:在渲染时,我无法进行 url 反转,因为 PK 还不知道。我需要制作一种 javascript-urlpattern ,稍后将其转换为真实的 url (即我的 JS 代码将用实际的 pk 值替换 {pk} 部分)

javascript django

3
推荐指数
1
解决办法
2321
查看次数

标签 统计

django ×3

javascript ×3

deployment ×1

python ×1

reverse ×1

templates ×1

url ×1