Redis некорректно импортируется в Django (при этом конфигурация Redis-cache работает идеально)

Проблема в том, что я не могу правильно настроить параметры Redis-cache

это ошибка, которую я получаю,

Watching for file changes with StatReloader Exception in thread django-main-thread: Traceback (most recent call last): File "C:\Users\Ranajoy\AppData\Local\Programs\Python\Python310\lib\threading.py", line 1009, in _bootstrap_inner self.run() `Файл

"C:\Users\Ranajoy\AppData\Local\Programs\Python\Python310\lib\threading.py", строка 946, in run self._target(*self._args, **self._kwargs)_** File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django\utils\autoreload.py", строка 64, in wrapper fn(*args, **kwargs) File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django\core\management\commands\runserver.py", line 134, in inner_run self.check(display_num_errors=True) File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django\core\management\base.py", line 487, in check all_issues = checks.run_checks( File

)

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django\core\checks\registry.py", line 88, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django\core\checks\caches.py", строка 65, in check_file_based_cache_is_absolute cache = caches[alias] File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django\utils\connection.py", line 62, in __getitem__ conn = self.create_connection(alias) File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django\core\cache__init_.py", line 52, in create_connection return backend_cls(location, params) File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django_redis\cache.py", line 53, in __init__ self._client_cls = import_string(self._client_cls)_ File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django\utils\module_loading.py", строка 30, in import_string return cached_import(module_path, class_name) File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django\utils\module_loading.py", строка 15, in cached_import import_module(module_path) File

"C:\Users\Ranajoy\AppData\Local\Programs\Python\Python310\lib\importlib__init_.py", строка 126, in import_module return _bootstrap. _gcd_import(name[level: ], package, level) File "", line 1050, in _gcd_import File "", line 1027, in _find_and_load File "", line 1006, in _find_and_load_unlocked File "", line 688, in _load_unlocked File "", line 883, in exec_module File "< заморожен importlib. _bootstrap>", строка 241, in call_with_frames_removed_ File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django_redis\client__init_.py", line 1, in ** from .default import DefaultClient File

"C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\venv\lib\site-packages\django_redis\client\default. py", строка 12, in from redis import Redis ImportError: cannot import name 'Redis' from 'redis' (C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)\redis__init_.py)`

my Django

Views.py

from django.shortcuts import render from .models import * from django.conf import settings from django.core.cache.backends.base import DEFAULT_TIMEOUT from django.views.decorators.cache import cache_page from django.core.cache import cache

Create your views here.

CACHE_TTL = getattr(settings, 'CACHE_TTL', DEFAULT_TIMEOUT)

def get_recipe(filter_recipe=None): if filter_recipe: recipes = Recipe.objects.filter(name__contains=filter_recipe) print('data coming from DB')

else:
    recipes = Recipe.objects.all()
    print('data coming from DB')

return recipes

#@cache_page(CACHE_TTL) def home(request): filter_recipe = request.GET.get('recipe') if cache.get(filter_recipe): recipe = cache.get(filter_recipe) print('data coming from Cache') else: if filter_recipe: recipe = get_recipe(filter_recipe) cache.set(filter_recipe, recipe) else: recipe = get_recipe() context = {'recipe': recipe} return render(request, 'home.html', context)

def show(request, pk): if cache.get(id): recipe = cache.get(id) print('data coming from Cache')

else:
    recipe = Recipe.objects.get(id=pk)
    cache.set(id, recipe)
    print('data coming from DB')

context = {'recipe': recipe}
return render(request, 'show.html', context)

Settings.py

#Cache settings -

CACHE_TTL = 60 * 1500

CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient" }, "KEY_PREFIX": "example" } }

all packages used PS C:\Users\Ranajoy\PycharmProjects\Recipe_App(Redis)> pip freeze asgiref==3.5.0 Deprecated==1.2.13 Django==4.0.3 django-debug-toolbar==3.2.4 django-redis==5.2.0 django-redis-cache==3.0.1 packaging==21.3 Pillow==9.0.1 pyparsing==3.0.7 redis==3.5.3 redis-simple-cache==0.0.8 sqlparse==0.4.2 tzdata==2022.1 wrapt==1.14.0

trying to integrate Redis to my simple Django application

Вернуться на верх