Django REST Framework (DRF) : TypeError : register ()에 예기치 않은 키워드 인수 'base_name'이 (가) 있습니다.


9

djangorestframework==3.11.0이전 버전에서 업데이트했습니다 . 이제이 오류가 발생했습니다.

TypeError : register ()에 예기치 않은 키워드 인수 'base_name'이 (가) 있습니다.

Traceback
  ...
  ...
  ...
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/abu/projects/django-example/django2x/urls.py", line 21, in <module>
    path('sample/', include('sample.urls')),
  File "/home/abu/.virtualenvs/django-example/lib/python3.6/site-packages/django/urls/conf.py", line 34, in include
    urlconf_module = import_module(urlconf_module)
  File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/abu/projects/django-example/sample/urls.py", line 6, in <module>
    router.register(r'musician', MusicianViewset, base_name='musician')
TypeError: register() got an unexpected keyword argument 'base_name'

답변:


21

Django RestFramework릴리스 노트DRF 3.9발표에서 그들은

Router.register base_name에 찬성 하여 주장을 더 이상 사용하지 마십시오 basename. # 5990


어떤 수단, 인수가 base_name더 이상 사용할 수로부터 DRF=3.11이후 사용 basename하는 대신

라우터 구성을 다음과 같이 변경하십시오.

router.register(r'musician', MusicianViewset, basename='musician')
router.register(r'album', AlbumViewset, basename='album')
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.