Зарегистрируйте свой роутер Django

Когда я использую route.register без base_name лайк;

route.register(r'codes', SmsCodeViewset)

Произошла ошибка;

AssertionError: basename argument not specified, and could not automatically determine the name from the viewset, as it does not have a .queryset attribute.

Когда я использую route.register(r'codes', SmsCodeViewset, bose_name="") ошибки нет, могу я спросить почему?

2 ответа

Я проверял свои конечные точки, и у меня нет ни одного базового имени.

from app import views
from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r'states', views.StateSet)

urlpatterns = [
    url(r'^', include(router.urls)),
]


class StateSet(viewsets.ModelViewSet):
    queryset = State.objects.all()
    serializer_class = StateSerializer

Мы должны предоставить базовое имя для маршрута, когда мы добавим его, как показано ниже

router.register(
    r'codes',
    SmsCodeViewset,
    base_name='sms-code',
)
Другие вопросы по тегам