it-swarm.com.de

Django REST Framework-URLs mit Django 2.0

Ich versuche, Django REST Framework mit Django 2.0-Projekt einzurichten, was bedeutet, dass url(r'^something/' ... durch path(something/ ... ersetzt wurde.

Ich versuche herauszufinden, wie ich meine rest_framework-Muster einrichte.

Das habe ich:

router = routers.DefaultRouter()
router.register(r'regulations', api.RegulationViewSet)
router.register(r'languages', api.LanguageViewSet)


urlpatterns = [
    ...
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    ...
]

Wenn ich zu http://127.0.0.1:8000/regulations gehe, bekomme ich einfach:

Seite nicht gefunden (404)

Wie soll ich meine urlpatterns einrichten?

4
HenryM
urlpatterns = [
    ...
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    ...
]

mit path('', include(router.urls)), kannst du bekommen:

http://127.0.0.1:8000/regulations/
http://127.0.0.1:8000/languages/

mit

path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),

du kannst bekommen:

http://127.0.0.1:8000/api-auth/{other paths}
11
Ykh

Nachdem Sie die router registriert haben, müssen Sie sie in die urlpatterns aufnehmen. Die Art und Weise, wie @Ykh vorgeschlagen hat, ist technisch korrekt, aber inhaltlich fehlt der Punkt.

urlpatterns = [
    # here you include your router
    path('', include(router.urls)),
    # here you include the authentication paths
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
]

Jetzt haben Sie folgende Routen:

http://localhost:8000/regulations/
http://localhost:8000/languages/

plus:

http://localhost:8000/api-auth/{other paths}
1
cezar