serve media previews
All checks were successful
Build and Push Docker Image / build (push) Successful in 45s
All checks were successful
Build and Push Docker Image / build (push) Successful in 45s
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
|
from django.conf import settings
|
||||||
from django.core import mail
|
from django.core import mail
|
||||||
from django.test import SimpleTestCase, TestCase, override_settings
|
from django.test import SimpleTestCase, TestCase, override_settings
|
||||||
from django.urls import reverse
|
from django.urls import reverse, resolve
|
||||||
|
|
||||||
|
|
||||||
@override_settings(EMAIL_BACKEND="django.core.mail.backends.locmem.EmailBackend", ADMINISTRATOR_EMAIL="admin@example.com")
|
@override_settings(EMAIL_BACKEND="django.core.mail.backends.locmem.EmailBackend", ADMINISTRATOR_EMAIL="admin@example.com")
|
||||||
@@ -45,3 +46,11 @@ class FaviconTests(SimpleTestCase):
|
|||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertEqual(response["Content-Type"], "image/svg+xml")
|
self.assertEqual(response["Content-Type"], "image/svg+xml")
|
||||||
self.assertIn(b"<svg", response.content)
|
self.assertIn(b"<svg", response.content)
|
||||||
|
|
||||||
|
|
||||||
|
class MediaUrlTests(SimpleTestCase):
|
||||||
|
def test_media_route_is_registered(self):
|
||||||
|
match = resolve(f"{settings.MEDIA_URL}items/example.jpg")
|
||||||
|
|
||||||
|
self.assertEqual(match.func.__module__, "django.views.static")
|
||||||
|
self.assertEqual(match.func.__name__, "serve")
|
||||||
|
|||||||
@@ -14,10 +14,13 @@ Including another URLconf
|
|||||||
1. Import the include() function: from django.urls import include, path
|
1. Import the include() function: from django.urls import include, path
|
||||||
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||||
"""
|
"""
|
||||||
|
import re
|
||||||
|
from urllib.parse import urlsplit
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.conf.urls.static import static
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.urls import path, include
|
from django.urls import include, path, re_path
|
||||||
|
from django.views.static import serve
|
||||||
|
|
||||||
from santehray import views
|
from santehray import views
|
||||||
|
|
||||||
@@ -30,5 +33,13 @@ urlpatterns = [
|
|||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
]
|
]
|
||||||
|
|
||||||
if settings.DEBUG:
|
# Serve uploaded media through Django so item previews work in preview/production
|
||||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
# deployments too. A dedicated web server or object storage can replace this later.
|
||||||
|
if settings.MEDIA_URL and not urlsplit(settings.MEDIA_URL).netloc:
|
||||||
|
urlpatterns += [
|
||||||
|
re_path(
|
||||||
|
rf"^{re.escape(settings.MEDIA_URL.lstrip('/'))}(?P<path>.*)$",
|
||||||
|
serve,
|
||||||
|
{"document_root": settings.MEDIA_ROOT},
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user