django-multisite2 2.0.0__tar.gz → 2.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/.github/workflows/build.yml +4 -3
  2. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/CHANGES +6 -0
  3. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/PKG-INFO +6 -3
  4. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/README.rst +5 -2
  5. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/django_multisite2.egg-info/PKG-INFO +6 -3
  6. django-multisite2-2.0.1/django_multisite2.egg-info/SOURCES.txt +105 -0
  7. django-multisite2-2.0.1/multisite/__pycache__/__init__.cpython-312.pyc +0 -0
  8. django-multisite2-2.0.1/multisite/__pycache__/apps.cpython-312.pyc +0 -0
  9. django-multisite2-2.0.1/multisite/__pycache__/exceptions.cpython-312.pyc +0 -0
  10. django-multisite2-2.0.1/multisite/__pycache__/forms.cpython-312.pyc +0 -0
  11. django-multisite2-2.0.1/multisite/__pycache__/hacks.cpython-312.pyc +0 -0
  12. django-multisite2-2.0.1/multisite/__pycache__/threadlocals.cpython-312.pyc +0 -0
  13. django-multisite2-2.0.1/multisite/__pycache__/utils.cpython-312.pyc +0 -0
  14. django-multisite2-2.0.1/multisite/admin/__pycache__/__init__.cpython-312.pyc +0 -0
  15. django-multisite2-2.0.1/multisite/admin/__pycache__/alias_admin.cpython-312.pyc +0 -0
  16. django-multisite2-2.0.1/multisite/admin/__pycache__/multisite_changelist.cpython-312.pyc +0 -0
  17. django-multisite2-2.0.1/multisite/admin/__pycache__/multisite_model_admin.cpython-312.pyc +0 -0
  18. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/exceptions.py +4 -0
  19. django-multisite2-2.0.1/multisite/management/__pycache__/__init__.cpython-312.pyc +0 -0
  20. django-multisite2-2.0.1/multisite/management/commands/__pycache__/__init__.cpython-312.pyc +0 -0
  21. django-multisite2-2.0.1/multisite/management/commands/__pycache__/update_public_suffix_list.cpython-312.pyc +0 -0
  22. django-multisite2-2.0.1/multisite/middleware/__pycache__/__init__.cpython-312.pyc +0 -0
  23. django-multisite2-2.0.1/multisite/middleware/__pycache__/cookie_domain_middleware.cpython-312.pyc +0 -0
  24. django-multisite2-2.0.1/multisite/middleware/__pycache__/dynamic_site_middleware.cpython-312.pyc +0 -0
  25. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/middleware/dynamic_site_middleware.py +9 -3
  26. django-multisite2-2.0.1/multisite/migrations/__pycache__/0001_initial.cpython-312.pyc +0 -0
  27. django-multisite2-2.0.1/multisite/migrations/__pycache__/0002_alter_alias_id_alter_alias_is_canonical.cpython-312.pyc +0 -0
  28. django-multisite2-2.0.1/multisite/migrations/__pycache__/0003_alter_alias_options_alter_alias_unique_together_and_more.cpython-312.pyc +0 -0
  29. django-multisite2-2.0.1/multisite/migrations/__pycache__/0004_alter_alias_managers.cpython-312.pyc +0 -0
  30. django-multisite2-2.0.1/multisite/migrations/__pycache__/__init__.cpython-312.pyc +0 -0
  31. django-multisite2-2.0.1/multisite/models/__pycache__/__init__.cpython-312.pyc +0 -0
  32. django-multisite2-2.0.1/multisite/models/__pycache__/alias.cpython-312.pyc +0 -0
  33. django-multisite2-2.0.1/multisite/models/__pycache__/managers.cpython-312.pyc +0 -0
  34. django-multisite2-2.0.1/multisite/models/__pycache__/signals.cpython-312.pyc +0 -0
  35. django-multisite2-2.0.1/multisite/models/__pycache__/validators.cpython-312.pyc +0 -0
  36. django-multisite2-2.0.1/multisite/tests/__pycache__/__init__.cpython-312.pyc +0 -0
  37. django-multisite2-2.0.1/multisite/tests/__pycache__/get_test_allowed_hosts.cpython-312.pyc +0 -0
  38. django-multisite2-2.0.1/multisite/tests/__pycache__/get_test_http_response.cpython-312.pyc +0 -0
  39. django-multisite2-2.0.1/multisite/tests/__pycache__/test_settings.cpython-312.pyc +0 -0
  40. django-multisite2-2.0.1/multisite/tests/tests/__pycache__/__init__.cpython-312.pyc +0 -0
  41. django-multisite2-2.0.1/multisite/tests/tests/__pycache__/request_factory.cpython-312.pyc +0 -0
  42. django-multisite2-2.0.1/multisite/tests/tests/__pycache__/test_alias.cpython-312.pyc +0 -0
  43. django-multisite2-2.0.1/multisite/tests/tests/__pycache__/test_contrib_site.cpython-312.pyc +0 -0
  44. django-multisite2-2.0.1/multisite/tests/tests/__pycache__/test_cookie_domain_middleware.cpython-312.pyc +0 -0
  45. django-multisite2-2.0.1/multisite/tests/tests/__pycache__/test_dynamic_site_middleware.cpython-312.pyc +0 -0
  46. django-multisite2-2.0.1/multisite/tests/tests/__pycache__/test_site_cache.cpython-312.pyc +0 -0
  47. django-multisite2-2.0.1/multisite/tests/tests/__pycache__/test_site_domain.cpython-312.pyc +0 -0
  48. django-multisite2-2.0.1/multisite/tests/tests/__pycache__/test_site_id.cpython-312.pyc +0 -0
  49. django-multisite2-2.0.1/multisite/tests/tests/__pycache__/test_template_loader.cpython-312.pyc +0 -0
  50. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/tests/test_site_id.py +3 -2
  51. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/threadlocals.py +7 -3
  52. django-multisite2-2.0.0/django_multisite2.egg-info/SOURCES.txt +0 -64
  53. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/.coveragerc +0 -0
  54. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/.gitignore +0 -0
  55. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/.pre-commit-config.yaml +0 -0
  56. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/.yamllint +0 -0
  57. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/LICENSE +0 -0
  58. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/MANIFEST.in +0 -0
  59. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/django_multisite2.egg-info/dependency_links.txt +0 -0
  60. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/django_multisite2.egg-info/not-zip-safe +0 -0
  61. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/django_multisite2.egg-info/requires.txt +0 -0
  62. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/django_multisite2.egg-info/top_level.txt +0 -0
  63. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/__init__.py +0 -0
  64. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/admin/__init__.py +0 -0
  65. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/admin/alias_admin.py +0 -0
  66. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/admin/multisite_changelist.py +0 -0
  67. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/admin/multisite_model_admin.py +0 -0
  68. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/apps.py +0 -0
  69. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/forms.py +0 -0
  70. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/hacks.py +0 -0
  71. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/management/__init__.py +0 -0
  72. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/management/commands/__init__.py +0 -0
  73. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/management/commands/update_public_suffix_list.py +0 -0
  74. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/middleware/__init__.py +0 -0
  75. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/middleware/cookie_domain_middleware.py +0 -0
  76. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/migrations/0001_initial.py +0 -0
  77. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/migrations/0002_alter_alias_id_alter_alias_is_canonical.py +0 -0
  78. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/migrations/0003_alter_alias_options_alter_alias_unique_together_and_more.py +0 -0
  79. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/migrations/0004_alter_alias_managers.py +0 -0
  80. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/migrations/__init__.py +0 -0
  81. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/models/__init__.py +0 -0
  82. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/models/alias.py +0 -0
  83. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/models/managers.py +0 -0
  84. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/models/signals.py +0 -0
  85. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/models/validators.py +0 -0
  86. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/__init__.py +0 -0
  87. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/get_test_allowed_hosts.py +0 -0
  88. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/get_test_http_response.py +0 -0
  89. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/hosts.py +0 -0
  90. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/test_settings.py +0 -0
  91. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/tests/__init__.py +0 -0
  92. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/tests/request_factory.py +0 -0
  93. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/tests/test_alias.py +0 -0
  94. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/tests/test_contrib_site.py +0 -0
  95. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/tests/test_cookie_domain_middleware.py +0 -0
  96. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/tests/test_dynamic_site_middleware.py +0 -0
  97. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/tests/test_site_cache.py +0 -0
  98. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/tests/test_site_domain.py +0 -0
  99. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/tests/tests/test_template_loader.py +0 -0
  100. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite/utils.py +0 -0
  101. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite_app/__init__.py +0 -0
  102. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite_app/apps.py +0 -0
  103. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite_app/urls.py +0 -0
  104. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/multisite_app/views.py +0 -0
  105. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/pyproject.toml +0 -0
  106. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/runtests.py +0 -0
  107. {django-multisite2-2.0.0 → django-multisite2-2.0.1}/setup.cfg +0 -0
@@ -68,7 +68,8 @@ jobs:
68
68
  env:
69
69
  DJANGO: ${{ matrix.django-version }}
70
70
 
71
- - name: Upload coverage to Codecov
72
- uses: codecov/codecov-action@v3
71
+ - name: Upload coverage reports to Codecov
72
+ uses: codecov/codecov-action@v4.0.1
73
73
  with:
74
- name: Python ${{ matrix.python-version }}
74
+ token: ${{ secrets.CODECOV_TOKEN }}
75
+ slug: erikvw/django-multisite2
@@ -2,6 +2,12 @@
2
2
  Release Notes
3
3
  =============
4
4
 
5
+ 2.0.1
6
+ -----
7
+ - change from ValueError to multisite specific exceptions
8
+ when getting default SITE_ID in development mode.
9
+ - add typing hints
10
+
5
11
  2.0.0
6
12
  -----
7
13
  - major refactor, drop support for lower than py 3.11 and DJ4.2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-multisite2
3
- Version: 2.0.0
3
+ Version: 2.0.1
4
4
  Summary: Serve multiple sites from a single Django application
5
5
  Home-page: http://github.com/erikvw/django-multisite
6
6
  Author: Leonid S Shestera
@@ -25,7 +25,7 @@ Description-Content-Type: text/x-rst
25
25
  License-File: LICENSE
26
26
  Requires-Dist: tldextract
27
27
 
28
- |actions| |codecov| |downloads| |maintainability| |black|
28
+ |pypi| |actions| |codecov| |downloads| |maintainability| |black|
29
29
 
30
30
 
31
31
 
@@ -46,7 +46,7 @@ Install with pip:
46
46
 
47
47
  .. code-block::
48
48
 
49
- pip install django-multisite2 (no release yet)
49
+ pip install django-multisite2
50
50
 
51
51
 
52
52
  Replace your ``SITE_ID`` in ``settings.py`` to:
@@ -129,6 +129,9 @@ settings.py::
129
129
 
130
130
  Templates
131
131
  ---------
132
+
133
+ This feature has been removed in version 2.0.0.
134
+
132
135
  If required, create template subdirectories for domain level templates (in a
133
136
  location specified in settings.TEMPLATES['DIRS'].
134
137
 
@@ -1,4 +1,4 @@
1
- |actions| |codecov| |downloads| |maintainability| |black|
1
+ |pypi| |actions| |codecov| |downloads| |maintainability| |black|
2
2
 
3
3
 
4
4
 
@@ -19,7 +19,7 @@ Install with pip:
19
19
 
20
20
  .. code-block::
21
21
 
22
- pip install django-multisite2 (no release yet)
22
+ pip install django-multisite2
23
23
 
24
24
 
25
25
  Replace your ``SITE_ID`` in ``settings.py`` to:
@@ -102,6 +102,9 @@ settings.py::
102
102
 
103
103
  Templates
104
104
  ---------
105
+
106
+ This feature has been removed in version 2.0.0.
107
+
105
108
  If required, create template subdirectories for domain level templates (in a
106
109
  location specified in settings.TEMPLATES['DIRS'].
107
110
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-multisite2
3
- Version: 2.0.0
3
+ Version: 2.0.1
4
4
  Summary: Serve multiple sites from a single Django application
5
5
  Home-page: http://github.com/erikvw/django-multisite
6
6
  Author: Leonid S Shestera
@@ -25,7 +25,7 @@ Description-Content-Type: text/x-rst
25
25
  License-File: LICENSE
26
26
  Requires-Dist: tldextract
27
27
 
28
- |actions| |codecov| |downloads| |maintainability| |black|
28
+ |pypi| |actions| |codecov| |downloads| |maintainability| |black|
29
29
 
30
30
 
31
31
 
@@ -46,7 +46,7 @@ Install with pip:
46
46
 
47
47
  .. code-block::
48
48
 
49
- pip install django-multisite2 (no release yet)
49
+ pip install django-multisite2
50
50
 
51
51
 
52
52
  Replace your ``SITE_ID`` in ``settings.py`` to:
@@ -129,6 +129,9 @@ settings.py::
129
129
 
130
130
  Templates
131
131
  ---------
132
+
133
+ This feature has been removed in version 2.0.0.
134
+
132
135
  If required, create template subdirectories for domain level templates (in a
133
136
  location specified in settings.TEMPLATES['DIRS'].
134
137
 
@@ -0,0 +1,105 @@
1
+ .coveragerc
2
+ .gitignore
3
+ .pre-commit-config.yaml
4
+ .yamllint
5
+ CHANGES
6
+ LICENSE
7
+ MANIFEST.in
8
+ README.rst
9
+ pyproject.toml
10
+ runtests.py
11
+ setup.cfg
12
+ .github/workflows/build.yml
13
+ django_multisite2.egg-info/PKG-INFO
14
+ django_multisite2.egg-info/SOURCES.txt
15
+ django_multisite2.egg-info/dependency_links.txt
16
+ django_multisite2.egg-info/not-zip-safe
17
+ django_multisite2.egg-info/requires.txt
18
+ django_multisite2.egg-info/top_level.txt
19
+ multisite/__init__.py
20
+ multisite/apps.py
21
+ multisite/exceptions.py
22
+ multisite/forms.py
23
+ multisite/hacks.py
24
+ multisite/threadlocals.py
25
+ multisite/utils.py
26
+ multisite/__pycache__/__init__.cpython-312.pyc
27
+ multisite/__pycache__/apps.cpython-312.pyc
28
+ multisite/__pycache__/exceptions.cpython-312.pyc
29
+ multisite/__pycache__/forms.cpython-312.pyc
30
+ multisite/__pycache__/hacks.cpython-312.pyc
31
+ multisite/__pycache__/threadlocals.cpython-312.pyc
32
+ multisite/__pycache__/utils.cpython-312.pyc
33
+ multisite/admin/__init__.py
34
+ multisite/admin/alias_admin.py
35
+ multisite/admin/multisite_changelist.py
36
+ multisite/admin/multisite_model_admin.py
37
+ multisite/admin/__pycache__/__init__.cpython-312.pyc
38
+ multisite/admin/__pycache__/alias_admin.cpython-312.pyc
39
+ multisite/admin/__pycache__/multisite_changelist.cpython-312.pyc
40
+ multisite/admin/__pycache__/multisite_model_admin.cpython-312.pyc
41
+ multisite/management/__init__.py
42
+ multisite/management/__pycache__/__init__.cpython-312.pyc
43
+ multisite/management/commands/__init__.py
44
+ multisite/management/commands/update_public_suffix_list.py
45
+ multisite/management/commands/__pycache__/__init__.cpython-312.pyc
46
+ multisite/management/commands/__pycache__/update_public_suffix_list.cpython-312.pyc
47
+ multisite/middleware/__init__.py
48
+ multisite/middleware/cookie_domain_middleware.py
49
+ multisite/middleware/dynamic_site_middleware.py
50
+ multisite/middleware/__pycache__/__init__.cpython-312.pyc
51
+ multisite/middleware/__pycache__/cookie_domain_middleware.cpython-312.pyc
52
+ multisite/middleware/__pycache__/dynamic_site_middleware.cpython-312.pyc
53
+ multisite/migrations/0001_initial.py
54
+ multisite/migrations/0002_alter_alias_id_alter_alias_is_canonical.py
55
+ multisite/migrations/0003_alter_alias_options_alter_alias_unique_together_and_more.py
56
+ multisite/migrations/0004_alter_alias_managers.py
57
+ multisite/migrations/__init__.py
58
+ multisite/migrations/__pycache__/0001_initial.cpython-312.pyc
59
+ multisite/migrations/__pycache__/0002_alter_alias_id_alter_alias_is_canonical.cpython-312.pyc
60
+ multisite/migrations/__pycache__/0003_alter_alias_options_alter_alias_unique_together_and_more.cpython-312.pyc
61
+ multisite/migrations/__pycache__/0004_alter_alias_managers.cpython-312.pyc
62
+ multisite/migrations/__pycache__/__init__.cpython-312.pyc
63
+ multisite/models/__init__.py
64
+ multisite/models/alias.py
65
+ multisite/models/managers.py
66
+ multisite/models/signals.py
67
+ multisite/models/validators.py
68
+ multisite/models/__pycache__/__init__.cpython-312.pyc
69
+ multisite/models/__pycache__/alias.cpython-312.pyc
70
+ multisite/models/__pycache__/managers.cpython-312.pyc
71
+ multisite/models/__pycache__/signals.cpython-312.pyc
72
+ multisite/models/__pycache__/validators.cpython-312.pyc
73
+ multisite/tests/__init__.py
74
+ multisite/tests/get_test_allowed_hosts.py
75
+ multisite/tests/get_test_http_response.py
76
+ multisite/tests/hosts.py
77
+ multisite/tests/test_settings.py
78
+ multisite/tests/__pycache__/__init__.cpython-312.pyc
79
+ multisite/tests/__pycache__/get_test_allowed_hosts.cpython-312.pyc
80
+ multisite/tests/__pycache__/get_test_http_response.cpython-312.pyc
81
+ multisite/tests/__pycache__/test_settings.cpython-312.pyc
82
+ multisite/tests/tests/__init__.py
83
+ multisite/tests/tests/request_factory.py
84
+ multisite/tests/tests/test_alias.py
85
+ multisite/tests/tests/test_contrib_site.py
86
+ multisite/tests/tests/test_cookie_domain_middleware.py
87
+ multisite/tests/tests/test_dynamic_site_middleware.py
88
+ multisite/tests/tests/test_site_cache.py
89
+ multisite/tests/tests/test_site_domain.py
90
+ multisite/tests/tests/test_site_id.py
91
+ multisite/tests/tests/test_template_loader.py
92
+ multisite/tests/tests/__pycache__/__init__.cpython-312.pyc
93
+ multisite/tests/tests/__pycache__/request_factory.cpython-312.pyc
94
+ multisite/tests/tests/__pycache__/test_alias.cpython-312.pyc
95
+ multisite/tests/tests/__pycache__/test_contrib_site.cpython-312.pyc
96
+ multisite/tests/tests/__pycache__/test_cookie_domain_middleware.cpython-312.pyc
97
+ multisite/tests/tests/__pycache__/test_dynamic_site_middleware.cpython-312.pyc
98
+ multisite/tests/tests/__pycache__/test_site_cache.cpython-312.pyc
99
+ multisite/tests/tests/__pycache__/test_site_domain.cpython-312.pyc
100
+ multisite/tests/tests/__pycache__/test_site_id.cpython-312.pyc
101
+ multisite/tests/tests/__pycache__/test_template_loader.cpython-312.pyc
102
+ multisite_app/__init__.py
103
+ multisite_app/apps.py
104
+ multisite_app/urls.py
105
+ multisite_app/views.py
@@ -9,6 +9,10 @@ class MultisiteSiteDoesNotExist(Exception):
9
9
  pass
10
10
 
11
11
 
12
+ class MultisiteAliasDoesNotExist(Exception):
13
+ pass
14
+
15
+
12
16
  class MultisiteCacheError(Exception):
13
17
  pass
14
18
 
@@ -7,11 +7,12 @@ from django.conf import settings
7
7
  from django.contrib.sites.models import SITE_CACHE, Site
8
8
  from django.core import mail
9
9
  from django.core.cache import caches
10
- from django.core.exceptions import DisallowedHost
10
+ from django.core.exceptions import DisallowedHost, ObjectDoesNotExist
11
11
  from django.db.models.signals import post_delete, post_init, pre_save
12
12
  from django.http import HttpResponse, HttpResponsePermanentRedirect
13
13
 
14
14
  from ..exceptions import (
15
+ MultisiteAliasDoesNotExist,
15
16
  MultisiteError,
16
17
  MultisiteInvalidHostError,
17
18
  debug_check_status_code,
@@ -170,11 +171,16 @@ class DynamicSiteMiddleware:
170
171
  try:
171
172
  # Prefer the default SITE_ID
172
173
  site_id = settings.SITE_ID.get_default()
173
- except ValueError:
174
+ except MultisiteError:
174
175
  # Fallback to the first Site object
175
176
  alias = Alias.canonical.order_by("site")[0]
176
177
  else:
177
- alias = Alias.canonical.get(site=site_id)
178
+ try:
179
+ alias = Alias.canonical.get(site=site_id)
180
+ except ObjectDoesNotExist as e:
181
+ raise MultisiteAliasDoesNotExist(
182
+ f"Invalid default SITE_ID. See {settings}. Got `{e}` for SITE_ID=`{site_id}`."
183
+ )
178
184
  return alias
179
185
 
180
186
  @classmethod
@@ -2,6 +2,7 @@ from django.contrib.sites.models import Site
2
2
  from django.test import TestCase
3
3
 
4
4
  from multisite import SiteID
5
+ from multisite.exceptions import MultisiteError
5
6
 
6
7
 
7
8
  class TestSiteID(TestCase):
@@ -11,8 +12,8 @@ class TestSiteID(TestCase):
11
12
  self.site_id = SiteID()
12
13
 
13
14
  def test_invalid_default(self):
14
- self.assertRaises(ValueError, SiteID, default="a")
15
- self.assertRaises(ValueError, SiteID, default=self.site_id)
15
+ self.assertRaises(MultisiteError, SiteID, default="a")
16
+ self.assertRaises(MultisiteError, SiteID, default=self.site_id)
16
17
 
17
18
  def test_compare_default_site_id(self):
18
19
  self.site_id = SiteID(default=self.site.id)
@@ -4,6 +4,8 @@ from threading import local
4
4
  from django.conf import settings
5
5
  from django.core.exceptions import ImproperlyConfigured
6
6
 
7
+ from multisite.exceptions import MultisiteError
8
+
7
9
 
8
10
  class SiteID(local):
9
11
  """
@@ -17,13 +19,15 @@ class SiteID(local):
17
19
  when combined with the appropriate middleware.
18
20
  """
19
21
 
20
- def __init__(self, default=None, *args, **kwargs):
22
+ def __init__(self, default: int | None = None, *args, **kwargs):
21
23
  """
22
24
  ``default``, if specified, determines the default SITE_ID,
23
25
  if that is unset.
24
26
  """
25
27
  if default is not None and not isinstance(default, int):
26
- raise ValueError("%r is not a valid default." % default)
28
+ raise MultisiteError(
29
+ f"Invalid default value for SITE_ID. See settings.SITE_ID. Got `{default}`."
30
+ )
27
31
  self.default = default
28
32
  self.reset()
29
33
 
@@ -100,7 +104,7 @@ class SiteID(local):
100
104
  def get_default(self):
101
105
  """Returns the default SITE_ID."""
102
106
  if self.default is None:
103
- raise ValueError("SITE_ID has not been set.")
107
+ raise MultisiteError("SITE_ID default has not been set. See settings.SITE_ID.")
104
108
  return self.default
105
109
 
106
110
 
@@ -1,64 +0,0 @@
1
- .coveragerc
2
- .gitignore
3
- .pre-commit-config.yaml
4
- .yamllint
5
- CHANGES
6
- LICENSE
7
- MANIFEST.in
8
- README.rst
9
- pyproject.toml
10
- runtests.py
11
- setup.cfg
12
- .github/workflows/build.yml
13
- django_multisite2.egg-info/PKG-INFO
14
- django_multisite2.egg-info/SOURCES.txt
15
- django_multisite2.egg-info/dependency_links.txt
16
- django_multisite2.egg-info/not-zip-safe
17
- django_multisite2.egg-info/requires.txt
18
- django_multisite2.egg-info/top_level.txt
19
- multisite/__init__.py
20
- multisite/apps.py
21
- multisite/exceptions.py
22
- multisite/forms.py
23
- multisite/hacks.py
24
- multisite/threadlocals.py
25
- multisite/utils.py
26
- multisite/admin/__init__.py
27
- multisite/admin/alias_admin.py
28
- multisite/admin/multisite_changelist.py
29
- multisite/admin/multisite_model_admin.py
30
- multisite/management/__init__.py
31
- multisite/management/commands/__init__.py
32
- multisite/management/commands/update_public_suffix_list.py
33
- multisite/middleware/__init__.py
34
- multisite/middleware/cookie_domain_middleware.py
35
- multisite/middleware/dynamic_site_middleware.py
36
- multisite/migrations/0001_initial.py
37
- multisite/migrations/0002_alter_alias_id_alter_alias_is_canonical.py
38
- multisite/migrations/0003_alter_alias_options_alter_alias_unique_together_and_more.py
39
- multisite/migrations/0004_alter_alias_managers.py
40
- multisite/migrations/__init__.py
41
- multisite/models/__init__.py
42
- multisite/models/alias.py
43
- multisite/models/managers.py
44
- multisite/models/signals.py
45
- multisite/models/validators.py
46
- multisite/tests/__init__.py
47
- multisite/tests/get_test_allowed_hosts.py
48
- multisite/tests/get_test_http_response.py
49
- multisite/tests/hosts.py
50
- multisite/tests/test_settings.py
51
- multisite/tests/tests/__init__.py
52
- multisite/tests/tests/request_factory.py
53
- multisite/tests/tests/test_alias.py
54
- multisite/tests/tests/test_contrib_site.py
55
- multisite/tests/tests/test_cookie_domain_middleware.py
56
- multisite/tests/tests/test_dynamic_site_middleware.py
57
- multisite/tests/tests/test_site_cache.py
58
- multisite/tests/tests/test_site_domain.py
59
- multisite/tests/tests/test_site_id.py
60
- multisite/tests/tests/test_template_loader.py
61
- multisite_app/__init__.py
62
- multisite_app/apps.py
63
- multisite_app/urls.py
64
- multisite_app/views.py