我正在开发一个基本的Django DRF API . 我一直在使用带有显式网址的基于类的视图 . 现在我正在尝试使用非常普通的DRF ViewSets路由器(用于自动生成URL) .

任何人都可以帮我指出正确的方向吗?我在DRF 3.8和Django 2.0上

项目urls.py:

from django.conf.urls import url, include
urlpatterns = [
    url(r'^userprofile/', include('UserProfile.urls', namespace='UserProfile')),
]

App:UserProfile / urls.py:

from django.conf.urls import include
from django.urls import path
from rest_framework.routers import DefaultRouter
from UserProfile import views

app_name = 'UserProfile'

router = DefaultRouter()
router.register('humans', views.HumanViewSet,)
urlpatterns = [path('', include(router.urls))]

App:UserProfile / views.py

from rest_framework import viewsets
from UserProfile.models import Human
from UserProfile.serializers import HumanSerializer


class HumanViewSet(viewsets.ReadOnlyModelViewSet):
    serializer_class = HumanSerializer
    queryset = Human.objects.all()

我收到一个错误:

__init__() missing 2 required positional arguments: 'app_name' and 'app_module'

完整追溯:包括完整追溯:

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/userprofile/humans/

Django Version: 2.0.4
Python Version: 3.6.4
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'rest_framework',
 'rest_framework.authtoken',
 'rest_framework_simplejwt',
 'django_extensions',
 'django_pdb',
 'django_use_email_as_username.apps.DjangoUseEmailAsUsernameConfig',
 'custom_user.apps.CustomUserConfig',
 'factory',
 'UserProfile']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
  35.             response = get_response(request)

File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  128.                 response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  126.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
  54.         return view_func(*args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/rest_framework/viewsets.py" in view
  103.             return self.dispatch(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
  466.         request = self.initialize_request(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/rest_framework/viewsets.py" in initialize_request
  125.         request = super(ViewSetMixin, self).initialize_request(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in initialize_request
  368.             authenticators=self.get_authenticators(),

File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in get_authenticators
  262.         return [auth() for auth in self.authentication_classes]

File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in <listcomp>
  262.         return [auth() for auth in self.authentication_classes]

Exception Type: TypeError at /userprofile/humans/
Exception Value: __init__() missing 2 required positional arguments: 'app_name' and 'app_module'