0
我正在精简如何在API中为我的Djangp应用程序包含不同的模型。以前,我将它设置在每个模型都有一个Viewset和一个Serializer分别定义的位置。相反,我正在研究一种更通用的方法,即只传入模型和相关字段列表,并将自动添加到API中。我跑的问题目前是定义serializer_class:Django REST框架HyperlinkedModelSerializer
from myapp import MyModel
from rest_framework.serializers import HyperlinkedModelSerializer
from rest_framework.viewsets import ModelViewSet
app_name = 'myapp'
fields = ('field1', 'field2', 'field3')
queryset = MyModel.objects.all()
# Problem is here
serializer_class = HyperlinkedModelSerializer(model=MyModel, fields=fields)
viewset = ModelViewSet(queryset=queryset, serializer_class=serializer_class)
# Then to register it all with the router:
self.register(app_name + '/' + model.__name__, viewset)
我得到的错误:
TypeError: __init__() got an unexpected keyword argument 'fields'
这个问题似乎是在HyperlinkedModelSerializer,“模型”和“场”通常被定义为元选项,所以当它们以这种方式提供时,似乎并不接受它们。
有没有办法做到这一点?
谢谢。
线路3: NameError:名字“元”是没有定义 – Ben
wooops,忘了Meta类没有继承任何东西。发布更新。 – Linovia
嗯,我现在得到的问题是,当我尝试注册它: self.register(APP_NAME +“/” +模型.__ name__,视图集) 有显示了很多的错误,但我认为它归结到: AttributeError:此方法仅适用于类,不适用于实例。 – Ben