Size: a a a

Django [ru] #STAY HOME

2019 November 06

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Yegor Kowalew
Спасибо за лекцию. Пойду наводить порядки в урлах
посмтри ещё на проект django_extensions, он добавляет ./manage.py show_urls команду — выводит в консоль все урлы в виде
полный урл с параметрами     функция вьюшки     полное назвние урла для {{url}}.
Удобно дебажить это место.
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Pavel Zagrebelin
посмтри ещё на проект django_extensions, он добавляет ./manage.py show_urls команду — выводит в консоль все урлы в виде
полный урл с параметрами     функция вьюшки     полное назвние урла для {{url}}.
Удобно дебажить это место.
Спасибо, как-то когда-то рука уже поднялась ставить, но не решился...
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
Pavel Zagrebelin
DefaultRouter регистрирует, в том числе, и вьюшку, в которой перечисляет те роуты, которые зарегистрированы в нём. Урл этой вьюшки - ''.
Это поведение решается полем include_root_view, которое можно выключить.
router= DefaultRouter()
router.register(....)
router.include_root_view = False
Вся эта магия происходит вот тут:
https://github.com/encode/django-rest-framework/blob/master/rest_framework/routers.py#L341
https://github.com/encode/django-rest-framework/blob/master/rest_framework/routers.py#L352

а как добавился в urls DefaultRouter? Да вот же:
https://dpaste.de/hcSd#L22
https://dpaste.de/Rn7F#L12
ты регистриуешь prefix /api/, в котором надо пройти в три инклюда.
Я не знаю, что в user_profile.urls и в history.urls, но скорее всего там нет строк path('') с пустым путём.

То есть, в джангу приходит запрос /api/. Она выбирает три инклюда, убирает префикс api/ , и пытается в каждый инклюд применить пустую строку. Пустая строка подохит вот сюда:    path('', include(router.urls)), а в router.urls пустая строка - это вот эта картинка на скриншоте.

Смотри, в моём сообщении почти что нет DRF, голая джанга.

Разберись как работают urlpatterns, path и инклюды, тебе гораздо лечге жить станет.
Лучше расскажи как нормально настроить сваггер на дрф)
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
Чтоб он сам чекал существующие вьюхи а не генерил все подряд
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
Тоже самое с редок
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Cyberdine Engineering🐤
Лучше расскажи как нормально настроить сваггер на дрф)
хз, я поставил drf_yasg, и почти что по дефолту его использую. Ну там где-то поправить руками про ?query параметры, или про SerializerMethodField() уточнить, ерунда. А рядом гугл-документ с описанием тонкостей апи.

Вроде не жалуются.
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
Pavel Zagrebelin
хз, я поставил drf_yasg, и почти что по дефолту его использую. Ну там где-то поправить руками про ?query параметры, или про SerializerMethodField() уточнить, ерунда. А рядом гугл-документ с описанием тонкостей апи.

Вроде не жалуются.
Значит это я лентяй
источник

E

Enot in Django [ru] #STAY HOME
нужно установить лимит на размер загружаемых файлов где это правильно сделать?
источник

E

Enot in Django [ru] #STAY HOME
в nginx?
источник

D

Dmitry in Django [ru] #STAY HOME
Pavel Zagrebelin
хз, я поставил drf_yasg, и почти что по дефолту его использую. Ну там где-то поправить руками про ?query параметры, или про SerializerMethodField() уточнить, ерунда. А рядом гугл-документ с описанием тонкостей апи.

Вроде не жалуются.
+
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Что за нацисская шляпа?
Считаю сообщение крайне не в тему джанги и хотел бы...
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
воу... не успел попросить одминов удалить
источник

♚Inojelis in Django [ru] #STAY HOME
Pavel Zagrebelin
А что именно не получается?
я непонимаю как это прописать.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
♚Inojelis
я непонимаю как это прописать.
в какой въюхе ?
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
а вот по теме жанги и еще конкретнее по drf, оно собака все-равно не хочет!
Есть корневой урлс, в нем:
    path('api/', include('user_profile.api_urls')),
   path('api/', include('history.api_urls')),

В обеих api_urls что-то наподобии такого:
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'history', HistoryViewSet, 'history')

urlpatterns = [
   path('', include(router.urls)),
]
Какого крена оно в api root не добавляет history???
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Но по ссылке http://127.0.0.1:8000/api/history/ все работает
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Yegor Kowalew
а вот по теме жанги и еще конкретнее по drf, оно собака все-равно не хочет!
Есть корневой урлс, в нем:
    path('api/', include('user_profile.api_urls')),
   path('api/', include('history.api_urls')),

В обеих api_urls что-то наподобии такого:
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'history', HistoryViewSet, 'history')

urlpatterns = [
   path('', include(router.urls)),
]
Какого крена оно в api root не добавляет history???
читай внимательнее моё большое сообщение, там было про то, какие урлы сюда приезжают.
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Pavel Zagrebelin
читай внимательнее моё большое сообщение, там было про то, какие урлы сюда приезжают.
так прикол в том что все в обеих аппах абсолютно идентично. Только модели разные
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
ничего-то ты не понял, джон сноу...
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Pavel Zagrebelin
ничего-то ты не понял, джон сноу...
Разобрался, они перезаписывают друг-друга, потому что у меня в аппах path('', по ходу
источник