1+ from django .apps import apps
12from django .conf import settings
23from django .contrib .auth .decorators import login_required
34from django .shortcuts import redirect , resolve_url
89from django_otp import devices_for_user
910from django_otp .decorators import otp_required
1011
11- from two_factor .plugins .phonenumber .utils import (
12- backup_phones , get_available_phone_methods ,
13- )
14-
1512from ..forms import DisableForm
1613from ..utils import default_device
1714
@@ -36,13 +33,22 @@ def get_context_data(self, **kwargs):
3633 except Exception :
3734 backup_tokens = 0
3835
39- context = {
36+ context = super ().get_context_data (** kwargs )
37+ context .update ({
4038 'default_device' : default_device (user ),
4139 'default_device_type' : default_device (user ).__class__ .__name__ ,
4240 'backup_tokens' : backup_tokens ,
43- 'backup_phones' : backup_phones (user ),
44- 'available_phone_methods' : get_available_phone_methods (),
45- }
41+ })
42+
43+ if apps .is_installed ("two_factor.plugins.phonenumber" ):
44+ from two_factor .plugins .phonenumber .utils import (
45+ backup_phones , get_available_phone_methods ,
46+ )
47+
48+ context .update ({
49+ "backup_phones" : backup_phones (self .request .user ),
50+ "available_phone_methods" : get_available_phone_methods (),
51+ })
4652
4753 return context
4854
0 commit comments