Почему мой запрос POST приводит к ошибке 404? - PullRequest
0 голосов
/ 23 ноября 2018

Я изо всех сил пытался отправить запрос на публикацию из моего приложения реагирования в мой Django rest framework api: продолжаю получать эту ошибку:

404 не найдено Cannot POST / api / tokens /

Я использую избыточность для обработки состояния и отправки данных в мой django API, работающий на localhost:8000:

export const addToken = (company_name, name, address, supply, holders) => {
  return dispatch => {
    let headers = {"Content-Type": "application/json"};
    let body = JSON.stringify({company_name, name, address, supply, holders,});
    debugger
    return fetch("/api/tokens/", {headers, method: "POST", body})
      .then(res => res.json())
      .then(token => {
        return dispatch({
          type: 'ADD_TOKEN',
          token
        })
      })
  }
}

В webpack.donf.dev.js:

const publicPath = 'http://localhost:3000/';

const publicUrl = 'http://localhost:3000/';

и вот мой url.py:

from contract import endpoints

urlpatterns = [
    url(r'^api/', include(endpoints)),
    path('admin/', admin.site.urls),
    url(r'^api-auth/', include('rest_framework.urls')),
    url(r'^', TemplateView.as_view(template_name="index.html")),

]

и endpoint.py

from contract import views
from .api import TokenViewSet

router = routers.DefaultRouter()
router.register('tokens', TokenViewSet, 'tokens')



urlpatterns = [
    url("^", include(router.urls)),
    path('tokens/', views.TokenList.as_view()),
    path('tokens/<int:pk>/', views.TokenDetail.as_view()),
    path('users/', views.UserList.as_view()),
    path('users/<int:pk>/', views.UserDetail.as_view()),
]

Не уверен, достаточно ли это информации, так как я довольно новичок вReact.js

ОБНОВЛЕНИЕ

Вот мои настройки.py

WEBPACK_LOADER = {
    'DEFAULT': {
            'BUNDLE_DIR_NAME': 'bundles/',
            'STATS_FILE': os.path.join(BASE_DIR, 'webpack-stats.dev.json'),
        }
}

затем webpack-stats-dev.json:

{"status":"done","publicPath":"http://localhost:3000/","chunks":{"main":[{"name":"static/js/bundle.js","publicPath":"http://localhost:3000/static/js/bundle.js","path":"/Users/cyrusghazanfar/Desktop/python-projects/smart-contract-distributor/vestvault/web_interface/dist/static/js/bundle.js"},{"name":"main.d66a743648ca15de12df.hot-update.js","publicPath":"http://localhost:3000/main.d66a743648ca15de12df.hot-update.js","path":"/Users/cyrusghazanfar/Desktop/python-projects/smart-contract-distributor/vestvault/web_interface/dist/main.d66a743648ca15de12df.hot-update.js"},{"name":"static/js/bundle.js.map","publicPath":"http://localhost:3000/static/js/bundle.js.map","path":"/Users/cyrusghazanfar/Desktop/python-projects/smart-contract-distributor/vestvault/web_interface/dist/static/js/bundle.js.map"},{"name":"main.d66a743648ca15de12df.hot-update.js.map","publicPath":"http://localhost:3000/main.d66a743648ca15de12df.hot-update.js.map","path":"/Users/cyrusghazanfar/Desktop/python-projects/smart-contract-distributor/vestvault/web_interface/dist/main.d66a743648ca15de12df.hot-update.js.map"}]}}
...