如何在Django中从模板调用控制器功能?

时间:2022-02-01 19:01:07

How to call controller function from template in Django instead of hardcoding URIs?

如何从Django中的模板调用控制器函数而不是硬编码URI?

3 个解决方案

#1


1  

I guess You mean "link to it".

我猜你的意思是“链接到它”。

This can be done via {% url %} tag, see docs

这可以通过{%url%}标记完成,请参阅文档

If Your intent is to call view function directly, this is not possible by design - templates should not know about views, it's a separate layer.

如果你的意图是直接调用视图函数,那么设计是不可能的 - 模板不应该知道视图,它是一个单独的层。

#2


0  

How to call controller function from template

如何从模板调用控制器功能

Not sure what you mean here. If you mean to provide an an HTML link to it see the second part of my answer below.

不确定你的意思。如果您想提供一个HTML链接,请参阅下面我的答案的第二部分。

instead of hardcoding URIs?

而不是硬编码URI?

In case you haven't already, use the {% url %} tag. Use this in conjunction with named URLs in your url config.

如果您还没有,请使用{%url%}标记。将此与url配置中的命名URL结合使用。

#3


0  

If you mean adding URL to the resulting HTML, then either use {% url %} tag as others, or get used to writing and using model_instance.get_absolute_url(). Personally I'm using the latter whenever possible, adding also custom "URL functions" like get_delete_url() etc.

如果您的意思是将URL添加到生成的HTML中,那么要么使用{%url%}标记作为其他标记,要么习惯于编写和使用model_instance.get_absolute_url()。就个人而言,我尽可能使用后者,添加自定义“URL函数”,如get_delete_url()等。

#1


1  

I guess You mean "link to it".

我猜你的意思是“链接到它”。

This can be done via {% url %} tag, see docs

这可以通过{%url%}标记完成,请参阅文档

If Your intent is to call view function directly, this is not possible by design - templates should not know about views, it's a separate layer.

如果你的意图是直接调用视图函数,那么设计是不可能的 - 模板不应该知道视图,它是一个单独的层。

#2


0  

How to call controller function from template

如何从模板调用控制器功能

Not sure what you mean here. If you mean to provide an an HTML link to it see the second part of my answer below.

不确定你的意思。如果您想提供一个HTML链接,请参阅下面我的答案的第二部分。

instead of hardcoding URIs?

而不是硬编码URI?

In case you haven't already, use the {% url %} tag. Use this in conjunction with named URLs in your url config.

如果您还没有,请使用{%url%}标记。将此与url配置中的命名URL结合使用。

#3


0  

If you mean adding URL to the resulting HTML, then either use {% url %} tag as others, or get used to writing and using model_instance.get_absolute_url(). Personally I'm using the latter whenever possible, adding also custom "URL functions" like get_delete_url() etc.

如果您的意思是将URL添加到生成的HTML中,那么要么使用{%url%}标记作为其他标记,要么习惯于编写和使用model_instance.get_absolute_url()。就个人而言,我尽可能使用后者,添加自定义“URL函数”,如get_delete_url()等。