【发布时间】:2019-09-13 06:06:30
【问题描述】:
我有一个项目结构如下,
..
├── project
│ ├── app1
│ └── app2
│ ├── app2_views
│ ├── main_view.py
│ ├── view1.py
│ ├── view2.py
我想在我的main_view.py 中调用view1.py 中定义的类
我试过下面的代码,
main.py
from rest_framework import viewsets
from app2.app2_views.view1.py import class1
class mainclass(viewsets.ModelViewSet):
class1.view1_data()
view1.py
from app2.models.py import table1
from rest_framework import viewsets
from app2.serializers.py import seri1
from django.db.models import Sum
class class1(viewsets.ModelViewSet):
def view1_data():
queryset = table1.objects.values('column')
serializer_class = seri1
seri1.py
from rest_framework import serializers
from app2.models import table1
class seri1(serializers.HyperlinkedModelSerializer):
class Meta:
model = table1
fields = ['column']
但我在 main.py 中遇到错误说
should either include a `serializer_class` attribute, or override the `get_serializer_class()` method
因为我已经在view1.py 中包含了序列化程序类,所以我不想在main_view.py 中再做一次。
我是python新手,我在这里做错了什么?
我也想让view1.py>class1 和main.py>mainclass 都可以通过 url(rest 框架管理门户)访问,我该怎么做?
目前我的 urls.py 是,
from django.urls import include, path
from rest_framework import routers
from . import views
from .app2 import view1, main_view
router = routers.DefaultRouter(trailing_slash=False)
router.register(r'^view1', main_view.mainclass, basename='mis_trx_data')
router.register(r'^main_view', view1.class1, basename='mis_trx_data')
urlpatterns = [
path('', include(router.urls)),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
感谢您的建议
【问题讨论】:
标签: django django-rest-framework django-views