当模型位于版本子目录中时,Django dumpdata返回空数组

时间:2018-11-20 17:44:48

标签: python django django-rest-framework

我有一个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 :(得分:0)

我想我已经解决了这个问题。当我将每个v1文件夹中的文件(模型,序列化器,视图)包含在它们各自的__init__.py文件中时,经理仍然期望models目录的底部有一个api模块。我添加了一个models.py文件,并在api.v1.models下包含了每个模型,现在看来是在寻找我的模型。

感谢您的光临!