2014-08-30 139 views
0

我正在尝试编写一个小型的urlshortener应用程序。django - 如何将自定义模板过滤器应用于绝对网址

一切都设置得很好。现在我正尝试将过滤器应用于完整的网址:

{{ request.build_absolute_uri }}{{ request.get_absolute_url}}给了我完整的网址。但是,如果我的应用过滤器这样的:

href="{{ request.build_absolute_uri }}{{ request.get_absolute_url|shortenme}}" 

我的过滤器状态并没有得到任何东西,因为request.get_absolute_url单独给空字符串。

只有{{ request.build_absolute_uri }}{{ request.get_absolute_url}}给出了我想要的完整url。我如何将我的过滤器应用到完整的网址?

+0

你确定'get_absolute_url'返回期望的值,而不是一个空字符串? – Alasdair 2014-08-30 18:49:26

+0

@Alasdair是的,你说得对。它是一个空字符串。该死的。我认为''build_absolute_uri''和''get_absolute_url''一起给了我完整的路径。我会改变我的问题,询问如何在这种情况下应用我的过滤器。 – doniyor 2014-08-30 18:53:11

回答

1

请求没有get_absolute_url方法。

您想使用request.pathrequest.get_full_path。第二个包含任何查询字符串。

有关更多信息,请参见request attributes上的文档。

+0

谢谢,我的不好。 ''request.build_absolute_uri''就是给出完整的url。不管怎么说,还是要谢谢你。 – doniyor 2014-08-30 19:18:36

相关问题