[docs]deftrust_session(request)->None:"""Creates a TrustedSession object for a given request's session, populating all the fields properly. Args: request: A request from the device/session that should be trusted. """device_type="unknown"ifrequest.user_agent.is_mobile:device_type="mobile"ifrequest.user_agent.is_tablet:device_type="tablet"ifrequest.user_agent.is_pc:device_type="computer"description=""ifrequest.user_agent.browser.family!="Other":description+=request.user_agent.browser.familyshowed_device=Falseifrequest.user_agent.device.family!="Other":ifdescription:description+=" on "showed_device=Truedescription+=request.user_agent.device.familyifrequest.user_agent.os.family!="Other":ifdescription:ifshowed_device:description+=" running "else:description+=" on "description+=request.user_agent.os.familyifnotTrustedSession.objects.filter(user=request.user,session_key=request.session.session_key).exists():TrustedSession.objects.create(user=request.user,session_key=request.session.session_key,description=description,device_type=device_type)request.session.set_expiry(7*24*60*60)# Trusted sessions expire after a week