Django REST Framework (DRF): TypeError: register () có một đối số từ khóa không mong đợi 'base_name'


9

Tôi đã cập nhật djangorestframework==3.11.0từ phiên bản cũ hơn. Bây giờ tôi đã có lỗi này,

LoạiError: register () có một đối số từ khóa bất ngờ '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'

Câu trả lời:


21

Từ các ghi chú phát hành của Django RestFramework và DRF 3.9thông báo họ đã đề cập rằng

Không tán thành Router.register base_namelập luận ủng hộ basename. # 5990


Điều đó có nghĩa là, đối số base_namekhông còn có sẵn từ đó DRF=3.11trở đi và sử dụng basenamethay thế

Vì vậy, Thay đổi cấu hình bộ định tuyến của bạn là,

router.register(r'musician', MusicianViewset, basename='musician')
router.register(r'album', AlbumViewset, basename='album')
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.