Путь к отказу ресурса Django?

Когда я пытаюсь выполнить запрос GET на одной из моих конечных точек API, она не может найти конечную точку.

Путь к отказу ресурса Django?

файл urls.py выглядит так

from django.urls import path, include
from django.contrib import admin
from api.resources import NoteResource

note_resource = NoteResource()

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

api.resources выглядит так

from tastypie.resources import ModelResource
from api.models import Note

class NoteResource(ModelResource):
    class Meta:
        queryset = Note.objects.all()
        resource_name = 'note'

Есть идеи, почему это происходит?

Решение: Похоже, что http://127.0.0.1:8000/api/note/ работает правильно .. почему это должно быть?

У вас есть обратная косая черта / в конце вашего path. Вы пробовали 127.0.0.1:8000/api/?

Sijan Bhandari 04.06.2018 10:11

вы тоже можете добавить NoteResource?

Jishnunand P K 04.06.2018 10:11

@SijanBhandari все еще ошибка 404 с / в конце

John Fisher 04.06.2018 10:12

@JishnunandPk только что добавил его!

John Fisher 04.06.2018 10:14

Ваш сервер работает на 8000, верно? 127.0.0.1:8000/admin работает?

Sijan Bhandari 04.06.2018 10:15

@SijanBhandari да http://127.0.0.1:8000/admin работает правильно

John Fisher 04.06.2018 10:16

@SijanBhandari, похоже, когда я использую http://127.0.0.1:8000/api/note/, он работает правильно ... есть идеи, почему это так?

John Fisher 04.06.2018 10:19

Почему вы пометили это как DRF, когда используете вкусный пирог?

Daniel Roseman 04.06.2018 10:19

@DanielRoseman да

John Fisher 04.06.2018 10:21

Это поможет @JohnFisher?

Sijan Bhandari 04.06.2018 11:31

Да спасибо за помощь

John Fisher 04.06.2018 11:43

@JohnFisher отметьте ответ как одобренный.

Sijan Bhandari 04.06.2018 13:17
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
12
270
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У вас также должна быть одна запись URL-адреса в note_resource.urls только для запроса /api. Что-то похожее

path('api/', APIClass).

Но вам никогда не понадобится эта конечная точка. Потому что /api не представляет никакого фактического запроса в вашей системе.

Я предпочитаю иметь следующие конечные точки:

path('api/notes/',include(note_resource.urls))

в вашем основном urls.py.

Таким образом, у вас может быть несколько URL-адресов в основном файле urls.py, представляющем каждое приложение.

 path('api/<APP_NAME>(s)/',include(<APP_NAME>.urls))

И вы будете управлять другими конечными точками в вашем файле app urls.py:

# Создать новую заметку

path(
        'create/',
        NoteCreate.as_view()
    ),

Другие вопросы по теме