1

我已经安装了djangorestframework-simplejwt软件包并尝试导入该模块,urls.pyviews.py仍然无法正常工作。请指导我解决这个问题。

点子列表

Package                       Version
----------------------------- -------
asgiref                       3.3.1
Django                        3.1.4
djangorestframework           3.12.2
djangorestframework-simplejwt 4.6.0
pip                           20.2.3
PyJWT                         1.7.1
pytz                          2020.4
setuptools                    49.2.1
sqlparse                      0.4.1

设置.py

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Django_MedicalApp',
'rest_framework',
'rest_framework_simplejwt',]


REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES':
                  ['rest_framework_simplejwt.authentication.JWTAuthentication',],
              'DEFAULT_PERMISSION_CLASSES': 
('rest_framework.permissions.AllowAny','rest_framework.permissions.IsAuthenticatedOrReadOnly',)}

网址.py

from rest_framework_simplejwt.views import TokenObtainPairView
router = routers.DefaultRouter()
router.register('Company',views.CompanyViewset,basename='Company')


urlpatterns = [
path('admin/', admin.site.urls),
path('api/',include(router.urls),
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'))]

视图.py

from rest_framework_simplejwt.authentication import JWTAuthentication

class CompanyViewset(viewsets.ViewSet):
    authentication_classes = [JWTAuthentication]

请帮我解决这个导入错误。

4

2 回答 2

1

这源于您的 Python 解释器。如果您使用的是虚拟环境,请尝试选择不同的 venv。就我而言

1-我正在使用自己的 venv 并且导入不成功:

在此处输入图像描述

2-但是,当我使用全局 python 解释器时,导入是可以的:

在此处输入图像描述

它这样工作的原因可能是我们的venvs都有问题。

于 2021-10-23T16:35:16.487 回答
1

将您的解释器更改为其他内容,然后再次选择您的虚拟环境。它会 100% 工作。安装 simplejwt 后,需要重置解释器,这可以通过将 env 更改为其他内容并返回到您正常使用的虚拟 env 来实现

选择口译员

于 2021-11-13T14:24:58.927 回答