Как устранить ошибку 404 для django -социальных? - PullRequest
0 голосов
/ 10 апреля 2020

Я хочу иметь возможность войти через социальные сети. Выполнив все действия (зарегистрированное приложение), вход в систему работает нормально, но не go через, потому что django не распознает мой URL.

Это мой вызов конечной точки API

facebookLogin(token: string):any{
    return this.http.post(environment.api + 'fblogin/', {token:this.token}).subscribe(
      (onSucess:any) => {
        localStorage.setItem(this._tokenKey, onSucess.token)
      }, onFail => {
        console.log(onFail)

      }
    );
  }

Но я получаю следующую ошибку: POST http://127.0.0.1: 8000 / api / fblogin / 404 (не найдено) . Из этого я знаю, что что-то не так с моими django URL. И действительно, переход к http://127.0.0.1: 8000 / api / fblogin / дал мне ошибку «страница не найдена» и что он попытался сопоставить несколько других URL-адресов.

Однако я не вижу, что что-то не так с моими URL

URL-адреса в моем приложении

from django.conf.urls import url, include
from rest_framework import routers
from . import views
from rest_framework_jwt.views import obtain_jwt_token, refresh_jwt_token
from social_django import urls

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)

urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'fblogin/', include(urls)),
    url(r'auth/', obtain_jwt_token),
    url(r'refresh/', refresh_jwt_token)
]

URL-адреса в моем проекте

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('Backend.api.urls'))
]

Другие URL-адреса, такие как http://127.0.0.1: 8000 / API / пользователи / работают. У меня также сложилось впечатление, что все мои настройки в порядке.

1 Ответ

0 голосов
/ 11 апреля 2020

Я полагаю, что из-за порядка и способа, которым вы определили URL.py, попробуйте следующий формат

from django.conf.urls import url, include
from rest_framework import routers
from . import views
from rest_framework_jwt.views import obtain_jwt_token, refresh_jwt_token
from social_django import urls

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)

urlpatterns = [
    url(r'^fblogin/', include(urls)),
    url(r'^auth/', obtain_jwt_token),
    url(r'^refresh/', refresh_jwt_token)
] + router.urls
...