Django dumpdata возвращает пустой массив, когда модели находятся в подкаталоге версии - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть приложение Django Rest Framework, в котором я разделил свои модели / сериализаторы / представления на отдельные каталоги (а не в models.py, serializers.py и т. Д.) И переместил эти каталоги в каталог v1.

Когда я пытаюсь запустить ./manage.py dumpdata api, я получаю пустой массив в качестве ответа.

./manage.py dumpdata выведет системные таблицы Django, но ни одна из моих таблиц моделей.

Вот пример:

- api/
-- __init__.py
-- v1/
--- router.py
--- __init__.py
--- models/
---- __init__.py
---- thingy.py
--- serializers/
---- __init__.py
---- thingy.py
--- views/
---- __init__.py
---- thingy.py

- project/
-- urls.py
-- settings.py
-- wsgi.py
-- __init__.py

Файл __init__.py внутри каждого файлаКаталог объектов (например, модели) включает класс из каждого файла:

from .thingy import Thingy

Файл router.py внутри api/ выглядит следующим образом:

from rest_framework import routers
from . import views

router = routers.DefaultRouter(trailing_slash=False)
router.register(r'thingies', views.ThingyViewSet)

api_urlpatterns = router.urls

И urls.py внутри project/ выглядит так:

from django.conf.urls import url, include
from django.contrib import admin
from django.urls import path
from api.v1.router import api_urlpatterns as api_v1

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^api/v1/', include(api_v1)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

1 Ответ

0 голосов
/ 21 ноября 2018

Кажется, я понял проблему.В то время как у меня были файлы в каждой папке v1 (модели, сериализаторы, представления), включенные в их соответствующие __init__.py файлы, менеджер все еще ожидал модуль models в базе каталога api.Я добавил файл models.py и включил каждую из моделей в api.v1.models, и теперь он, похоже, находит мои модели.

Спасибо за внимание!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...