From 32d6299c0e00e2f6e01f883ef84e73c5f9032fb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 16 Apr 2022 17:39:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BA?= =?UTF-8?q?=D0=B0=D1=80=D1=82=D0=B8=D0=BD=D0=BA=D0=B8=20=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=B6=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D1=82=D0=B5=D0=B3=D1=83.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Дикая лямбда и ее подруга регулярка. --- blog/blog/settings.py | 4 ++++ blog/blog/urls.py | 6 ++++++ blog/posts/views.py | 10 ++++++++++ 3 files changed, 20 insertions(+) diff --git a/blog/blog/settings.py b/blog/blog/settings.py index eb1af4a..65f4c6c 100644 --- a/blog/blog/settings.py +++ b/blog/blog/settings.py @@ -121,6 +121,10 @@ USE_TZ = True STATIC_URL = "static/" +# пути для загрузки файлов +MEDIA_ROOT = os.path.join(BASE_DIR, "data/") # 'data' is my media folder +MEDIA_URL = "/media/" + # для того чтобы использовать общие статические файлы STATICFILES_DIRS = [ BASE_DIR / "static", diff --git a/blog/blog/urls.py b/blog/blog/urls.py index e87b920..96eaf8c 100644 --- a/blog/blog/urls.py +++ b/blog/blog/urls.py @@ -15,6 +15,8 @@ Including another URLconf """ from django.contrib import admin from django.urls import path, include +from django.conf import settings +from django.conf.urls.static import static urlpatterns = [ path("", include("mainpage.urls")), @@ -22,3 +24,7 @@ urlpatterns = [ path("comments/", include("comments.urls")), path("admin/", admin.site.urls), ] + +# позволяет выводить картинки, если мы в режиме дебага +if settings.DEBUG: + urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/blog/posts/views.py b/blog/posts/views.py index 60c5b76..8f51fc8 100644 --- a/blog/posts/views.py +++ b/blog/posts/views.py @@ -6,6 +6,8 @@ from comments.models import Comment from comments import services as comments_services +import re + def index(request): """Список постов.""" @@ -24,6 +26,14 @@ def detail(request, post_id): _nickname = request.COOKIES.get("nickname") nickname = comments_services.decode_nickname(_nickname) if _nickname else "" + images = post.image_set.all() + # вывод картинок в посте, замена шаблона по регулярке + post.text = re.sub( + r"\[\[image\:(.+?)\]\]", + lambda x: f"", + post.text, + ) + return render( request, "posts/post.html",