Проблема импорта ModelResource из tastypie.resources

Добрый день, я сейчас на середине практического проекта для django и не могу найти решение проблемы при создании api с помощью tastypie. Я сейчас нахожусь в середине обучения, поэтому любая помощь будет оценена по достоинству. Я использую django 4.0 и tastypie 2.8.2.

Вот код, который, похоже, является проблемой:

from django.db import models
from tastypie.resources import ModelResource

Вот полная ошибка, которую я получаю при попытке выполнить python3 manage.py runserver на моем venv:

> Exception in thread django-main-thread: Traceback (most recent call
> last):   File "/usr/lib/python3.9/threading.py", line 954, in
> _bootstrap_inner
>     self.run()   File "/usr/lib/python3.9/threading.py", line 892, in run
>     self._target(*self._args, **self._kwargs)   File "/home/user/.local/share/virtualenv-path/lib/python3.9/site-packages/django/utils/autoreload.py",
> line 64, in wrapper
>     fn(*args, **kwargs)   File "/home/user/.local/share/virtualenv-path/lib/python3.9/site-packages/django/core/management/commands/runserver.py",
> line 115, in inner_run
>     autoreload.raise_last_exception()   File "/home/user/.local/share/virtualenv-path/lib/python3.9/site-packages/django/utils/autoreload.py",
> line 87, in raise_last_exception
>     raise _exception[1]   File "/home/user/.local/share/virtualenv-path/lib/python3.9/site-packages/django/core/management/__init__.py", line 381, in execute
>     autoreload.check_errors(django.setup)()   File "/home/user/.local/share/virtualenv-path/lib/python3.9/site-packages/django/utils/autoreload.py",
> line 64, in wrapper
>     fn(*args, **kwargs)   File "/home/user/.local/share/virtualenv-path/lib/python3.9/site-packages/django/__init__.py",
> line 24, in setup
>     apps.populate(settings.INSTALLED_APPS)   File "/home/user/.local/share/virtualenv-path/lib/python3.9/site-packages/django/apps/registry.py",
> line 114, in populate
>     app_config.import_models()   File "/home/user/.local/share/virtualenv-path/lib/python3.9/site-packages/django/apps/config.py",
> line 300, in import_models
>     self.models_module = import_module(models_module_name)   File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
>     return _bootstrap._gcd_import(name[level:], package, level)   File "frozen importlib._bootstrap", line 1030, in _gcd_import   File
> "frozen importlib._bootstrap", line 1007, in _find_and_load   File
> "frozen importlib._bootstrap", line 986, in _find_and_load_unlocked  
> File "frozen importlib._bootstrap", line 680, in _load_unlocked   File
> "frozen importlib._bootstrap_external", line 790, in exec_module  
> File "frozen importlib._bootstrap", line 228, in
> _call_with_frames_removed   **File "/home/user/myapp/api/models.py", line 2, in module**
>     from tastypie.resources import ModelResource   File "/home/user/.local/share/virtualenv-path/lib/python3.9/site-packages/tastypie/resources.py",
> line 13, in module
>     from django.conf.urls import url ImportError: cannot import name 'url' from 'django.conf.urls'
> (/home/user/.local/share/virtualenv-path/lib/python3.9/site-packages/django/conf/urls/__init__.py)

После небольшого поиска я обнаружил, что некоторые люди смогли решить эту проблему, заменив "url" на "re_path" при импорте, однако это, похоже, не работает для меня.

Вот как выглядит мой файл resources.py до ошибки импорта:

from __future__ import unicode_literals

from copy import copy, deepcopy
from datetime import datetime
import logging
import sys
from time import mktime
import traceback
import warnings
from wsgiref.handlers import format_date_time

from django.conf import settings
from django.conf.urls import url

Решением, очевидно, было изменение последней строки на from django.conf.urls import re_path, но теперь я получаю ошибку "from django.conf.urls import url ImportError: cannot import name 're_path' from 'django.conf.urls'". Похоже, проблема начинается, когда я импортирую ModelResource из каталога tastypie/resources, поэтому я проверил файл ресурсов для класса ModelResource и обнаружил, что он пуст:

class ModelResource(six.with_metaclass(ModelDeclarativeMetaclass, BaseModelResource)):
    pass

Я не уверен, что это может быть как-то связано, так как все было именно так после установки. Все пакеты были установлены внутри venv.

Опять же, я сейчас нахожусь в середине обучения, поэтому любая помощь будет глубоко признательна.

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