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