From aadefbc286218260e01b1ea02ec8f29389fc3f9a Mon Sep 17 00:00:00 2001 From: vas3k Date: Sun, 22 May 2022 19:50:10 +0200 Subject: [PATCH] Add django-debug-toolbar + fix slow SQL qieries --- boards/models.py | 2 +- boards/views.py | 2 +- infomate/settings.py | 7 ++++++- infomate/urls.py | 13 ++++++++++--- requirements.txt | 4 +++- templates/common/favicon.html | 2 +- 6 files changed, 22 insertions(+), 8 deletions(-) diff --git a/boards/models.py b/boards/models.py index 95bd9fa..adbbe90 100644 --- a/boards/models.py +++ b/boards/models.py @@ -3,7 +3,7 @@ from datetime import datetime, timedelta from django.contrib.humanize.templatetags.humanize import naturaltime from django.db import models -from django.contrib.postgres.fields import JSONField +from django.db.models import JSONField from slugify import slugify from boards.icons import DOMAIN_ICONS, DOMAIN_FAVICONS diff --git a/boards/views.py b/boards/views.py index b6b385b..f0070dc 100644 --- a/boards/views.py +++ b/boards/views.py @@ -28,7 +28,7 @@ def board(request, board_slug): return cached_page blocks = BoardBlock.objects.filter(board=board) - feeds = BoardFeed.objects.filter(board=board) + feeds = BoardFeed.objects.select_related("articles").filter(board=board) result = render(request, "board.html", { "board": board, "blocks": blocks, diff --git a/infomate/settings.py b/infomate/settings.py index 86b8c49..bb78ef8 100644 --- a/infomate/settings.py +++ b/infomate/settings.py @@ -10,13 +10,14 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) DEBUG = (os.getenv("DEBUG") != "false") # SECURITY WARNING: don't run with debug turned on in production! SECRET_KEY = os.getenv("SECRET_KEY") or "wow so secret" ALLOWED_HOSTS = ["127.0.0.1", "localhost", "0.0.0.0", "infomate.club"] +INTERNAL_IPS = ["127.0.0.1"] INSTALLED_APPS = [ "django.contrib.staticfiles", "django.contrib.humanize", "django_bleach", "boards", - "parsing" + "parsing", ] MIDDLEWARE = [ @@ -123,3 +124,7 @@ if SENTRY_DSN and not DEBUG: dsn=SENTRY_DSN, integrations=[DjangoIntegration()] ) + +if DEBUG: + INSTALLED_APPS += ["debug_toolbar"] + MIDDLEWARE = ["debug_toolbar.middleware.DebugToolbarMiddleware"] + MIDDLEWARE diff --git a/infomate/urls.py b/infomate/urls.py index 59adcb7..d803a01 100644 --- a/infomate/urls.py +++ b/infomate/urls.py @@ -1,8 +1,8 @@ -from django.urls import path +from django.conf import settings +from django.urls import path, include from django.views.decorators.cache import cache_page from boards.views import index, board, privacy_policy, what -from infomate import settings from parsing.views import TelegramChannelFeed urlpatterns = [ @@ -16,5 +16,12 @@ urlpatterns = [ path("parsing/telegram//", cache_page(settings.TELEGRAM_CACHE_SECONDS)(TelegramChannelFeed()), name="telegram_channel_feed"), - ] + +if settings.DEBUG: + import debug_toolbar + urlpatterns = [path("__debug__/", include(debug_toolbar.urls))] + urlpatterns + +DEBUG_TOOLBAR_CONFIG = { + "SHOW_TOOLBAR_CALLBACK": lambda request: True, +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 75ffbe3..9801a30 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -Django==3.2.12 +Django==4.0.4 gunicorn==20.1.0 uvicorn==0.17.6 psycopg2-binary==2.9.3 @@ -13,3 +13,5 @@ sentry-sdk==1.5.8 nltk==3.6.6 newspaper3k>=0.2.8 django-bleach==1.0.0 +django-debug-toolbar==3.4.0 + diff --git a/templates/common/favicon.html b/templates/common/favicon.html index 6353147..e4d2715 100644 --- a/templates/common/favicon.html +++ b/templates/common/favicon.html @@ -1,4 +1,4 @@ -{% load staticfiles %} +{% load static %}