0
Djangp 앱의 API에 다른 모델을 포함시키는 방법을 간소화하려고합니다. 이전에는 각 모델에 Viewset 및 Serializer가 별도로 정의되어있는 곳에 설정했습니다. 대신 모델과 관련 필드 목록을 전달하는보다 일반적인 방법을 사용하고 API에 자동으로 추가됩니다.Django REST 프레임 워크 HyperlinkedModelSerializer
이TypeError: __init__() got an unexpected keyword argument 'fields'
문제는 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)
: 나는에서 실행 해요 문제는 현재 serializer_class을 정의 함께합니다 은 일반적으로 메타 옵션으로 정의되므로 이러한 방식으로 제공 될 때이를 받아들이지 않는 것 같습니다.
이 방법이 있습니까?
감사합니다.
3 호선 : 나가서 설명하자면 NameError : 이름이 '메타'가 정의되지 – Ben
wooops, 메타 클래스가 아무 것도 상속받지 못한다는 사실을 잊어 버렸습니다. 소식이 업데이트되었습니다. – Linovia
흠, 이제 문제는 등록하려고 할 때입니다. self.register (app_name + '/'+ model .__ name__, viewset) 표시되는 오류는 많지만 발생한다고 생각합니다. 대상 : AttributeError :이 메서드는 클래스가 아닌 인스턴스에서만 사용할 수 있습니다. – Ben