[英]How can I pass the same context from two views, Django?
我有三个模板:
first_template和second_template扩展了base_template。 因此,它们具有相同的旁白条。 我需要将相同的上下文传递给这些模板。 当然,我可以在第一个视图中创建一次,然后在第二个视图中创建。 但是,在我看来,这不是一个好习惯。 或者,我可以在utils.py中创建一个函数并将其添加到context_processors中,但是随后它将被传递到所有网站。
我该怎么办? 请给我一个建议。
谢谢。
您有几种选择:
您可以使用会话-将上下文添加到会话中,然后直接从模板中的会话中呈现它。
创建一个自定义上下文处理器; 并只需忽略其他模板中的变量即可。
创建一个基视图类,然后在其他视图中从基类继承。 这样,您的上下文仅定义一次。
创建一个自定义装饰器,将上下文注入响应中,然后在需要的地方装饰方法(或类)。
在这四个中,较好的是2和3。 4也会起作用,但要求您了解装饰器的工作方式 。 我只是在其中添加了一些会话,以防万一这是一个临时需求-否则,您应该真正忽略会话并查看其他会话。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.