【发布时间】:2019-04-23 18:58:42
【问题描述】:
我有一个已经有数百个视图的大型 Django 项目。我正在创建一个tasks 功能,用户可以在其中完成与他们正在使用的项目中的特定应用程序相关的特定任务。我有多个界面(也就是项目中的 Django 应用程序):admin、management、onsite 等……每个界面都有自己的导航,带有 tasks 链接。
如果用户处于task 尚未完成的界面中,我想要的是能够更改此链接的颜色。
这很容易在每个视图中检查,然后我可以根据传递到视图中的变量为链接普遍呈现正确的颜色,但是对于数百个视图来说这非常乏味。
我想我可以在每个界面/Django App 中添加一个过滤器来简化这一点,但这是最简单的解决方案吗?
这是我想在每个界面的导航中调用的方法示例:
from objects_client.task_models.task_models import Tasks
def does_interface_have_open_tasks(current_interface, db_alias):
if Tasks.objects.using(db_alias)\
.filter(interface=current_interface, completed=0).exists():
return True
return False
【问题讨论】:
-
这是一个上下文处理器或自定义模板标签的工作。
-
我今天正在研究这个@DanielRoseman,我认为
ContextProcessor是在每个应用程序中进行一些研究的模板,谢谢!
标签: python django python-3.x django-templates django-context