Python Django-在动态导航栏中避免重复查询的最佳方法是什么?
我目前正在开发一个有两个应用程序的项目。当用户登录系统时,导航栏将根据用户在数据库中拥有的权限显示链接 如果用户仅具有应用程序1的权限,则其显示的链接将仅对应于此应用程序,如果用户仅具有应用程序2的权限,则相同。如果用户对这两个应用都有权限,导航栏将显示这两个应用的所有链接 由于是动态的,导航栏必须对数据库进行查询。因此,我希望避免每次加载页面时都进行查询 我认为,在视图中,一个选项是第一次进行查询,然后将其与request.session一起存储:Python Django-在动态导航栏中避免重复查询的最佳方法是什么?,python,django,Python,Django,我目前正在开发一个有两个应用程序的项目。当用户登录系统时,导航栏将根据用户在数据库中拥有的权限显示链接 如果用户仅具有应用程序1的权限,则其显示的链接将仅对应于此应用程序,如果用户仅具有应用程序2的权限,则相同。如果用户对这两个应用都有权限,导航栏将显示这两个应用的所有链接 由于是动态的,导航栏必须对数据库进行查询。因此,我希望避免每次加载页面时都进行查询 我认为,在视图中,一个选项是第一次进行查询,然后将其与request.session一起存储: Try: #If the query ha
Try: #If the query has already been made, it accesses the saved value
query = request.session['navbar']
Except: # If the query has not been made, makes it and saves it in request.session['navbar']
request.session['navbar'] = #QUERYCODE
这是处理问题的好方法吗?还有其他更好的方法吗?如果此时确实需要此优化,可以使用@cached_属性并将确定用户是否有访问权限的逻辑放在其中。request.session方法是否有问题?如果此时确实需要此优化,您可以使用@cached_属性,并将确定用户是否具有访问权限的逻辑放在其中。request.session方法有任何问题吗?