我目前正在开发一个有两个应用程序的项目。当用户登录系统时,导航栏将根据用户在数据库中的权限显示链接。
如果用户仅具有应用程序1的权限,则其显示的链接将仅与此应用程序相对应,如果仅具有应用程序2的权限则相同。如果用户同时拥有两个导航栏的权限,则导航栏将显示两个应用程序的所有链接。
要保持动态,导航栏必须对数据库进行查询。所以我想避免每次加载页面时进行查询。
我认为视图中的一个选项是第一次进行查询,然后将其与request.session存储在一起:
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
这是处理问题的好方法吗?还有另一种更好的方法吗?