Django REST Framework TypeError: register() missing 1 required positional argument: 'viewset'
Django REST Framework TypeError: register() missing 1 required positional argument: 'viewset'
我正在学习 Django REST Framework,我正在尝试使用一个简单的 ViewSet,但是当我尝试 运行 服务器
时,控制台上一直出现此错误
File "C:\Users\anahu\Projects\guatudu-api\api\api\locations\urls.py", line 13, in <module>
router.register(r'countries', country_views.CountryViewSet, basename='country')
TypeError: register() missing 1 required positional argument: 'viewset'
这是我的应用 urls.py
"""Locations Urls"""
# Django
from django.urls import path, include
# Django Rest Framework
from rest_framework.routers import DefaultRouter
# Views
from api.locations.views import countries as country_views
router = DefaultRouter
router.register(r'countries', country_views.CountryViewSet, basename='country')
urlpatterns = router.urls
这是我的视图集
"""Countries view"""
# Django REST Framework
from rest_framework import viewsets
# Serializers
from api.locations.serializers import CountryModelSerializer
# Models
from api.locations.models import Country
class CountryViewSet(viewsets.ModelViewSet):
"""Country viewset"""
queryset = Country.objects.all()
serializer_class = CountryModelSerializer
这是我的序列化器
"""Country Serializers"""
#Django Rest Framework
from rest_framework import serializers
from rest_framework.validators import UniqueValidator
#Model
from api.locations.models import Country
class CountryModelSerializer(serializers.ModelSerializer):
"""Country Model Serializer"""
class Meta:
"""Meta class"""
model = Country
fields = (
'id',
'name',
'image'
)
是非常基本的东西,但我不断收到该错误。我所能想象的是,出于某种原因,我没有从 urls.py 上正确获取 ViewSet?希望大家帮帮我
尝试更改您的 url:
"""Locations Urls"""
# Django
from django.urls import path, include
# Django Rest Framework
from rest_framework.routers import DefaultRouter
# Views
from api.locations.views import countries as country_views
router = DefaultRouter()
router.register(r'countries', country_views.CountryViewSet, basename='country')
urlpatterns = router.urls
这是一个简单的错误。
router = DefaultRouter
router.register(r'countries', country_views.CountryViewSet, basename='country')
将此代码更改为:
router = DefaultRouter()
router.register(r'countries', country_views.CountryViewSet, basename='country')
DefaultRouter()
是一个函数。
我正在学习 Django REST Framework,我正在尝试使用一个简单的 ViewSet,但是当我尝试 运行 服务器
时,控制台上一直出现此错误 File "C:\Users\anahu\Projects\guatudu-api\api\api\locations\urls.py", line 13, in <module>
router.register(r'countries', country_views.CountryViewSet, basename='country')
TypeError: register() missing 1 required positional argument: 'viewset'
这是我的应用 urls.py
"""Locations Urls"""
# Django
from django.urls import path, include
# Django Rest Framework
from rest_framework.routers import DefaultRouter
# Views
from api.locations.views import countries as country_views
router = DefaultRouter
router.register(r'countries', country_views.CountryViewSet, basename='country')
urlpatterns = router.urls
这是我的视图集
"""Countries view"""
# Django REST Framework
from rest_framework import viewsets
# Serializers
from api.locations.serializers import CountryModelSerializer
# Models
from api.locations.models import Country
class CountryViewSet(viewsets.ModelViewSet):
"""Country viewset"""
queryset = Country.objects.all()
serializer_class = CountryModelSerializer
这是我的序列化器
"""Country Serializers"""
#Django Rest Framework
from rest_framework import serializers
from rest_framework.validators import UniqueValidator
#Model
from api.locations.models import Country
class CountryModelSerializer(serializers.ModelSerializer):
"""Country Model Serializer"""
class Meta:
"""Meta class"""
model = Country
fields = (
'id',
'name',
'image'
)
是非常基本的东西,但我不断收到该错误。我所能想象的是,出于某种原因,我没有从 urls.py 上正确获取 ViewSet?希望大家帮帮我
尝试更改您的 url:
"""Locations Urls"""
# Django
from django.urls import path, include
# Django Rest Framework
from rest_framework.routers import DefaultRouter
# Views
from api.locations.views import countries as country_views
router = DefaultRouter()
router.register(r'countries', country_views.CountryViewSet, basename='country')
urlpatterns = router.urls
这是一个简单的错误。
router = DefaultRouter
router.register(r'countries', country_views.CountryViewSet, basename='country')
将此代码更改为:
router = DefaultRouter()
router.register(r'countries', country_views.CountryViewSet, basename='country')
DefaultRouter()
是一个函数。