当我使用rest_framework实现api时
模型.py:
class Store(models.Model):
name = models.CharField(max_length=20)
notes = models.TextField(blank=True, default='')
def __str__(self):
return self.name
我的应用程序/api.py:
class StoreSerializer(serializers.ModelSerializer):
class Meta:
model = Store
class StoreViewSet(viewsets.ModelViewSet):
queryset = Store.objects.all()
serializer_class = StoreSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
项目/api.py
v1 = routers.DefaultRouter()
v1.register('store',StoreViewSet)
v1.register('stores/menu_item',MenuItemViewSet)
网址.py
from .api import v1
urlpatterns = [
url(r'^api/v1/', include(v1.urls)),
]
我遇到了以下回溯
AssertionError at /api/v1/store/ ("Creating a ModelSerializer without either the 'fields' attribute or the 'exclude' attribute has been deprecated since 3.3.0, and is now disallowed. Add an explicit fields = 'all' to the StoreSerializer serializer.",)
所以我添加了 fields = '__all__' 来修复这个错误
class StoreSerializer(serializers.ModelSerializer):
fields = '__all__'
class Meta:
model = Store
但接下来我遇到了这个traceback
根据回溯,我不知道缺少哪一部分。
请您参考如下方法:
将其放入 Meta 中:
class StoreSerializer(serializers.ModelSerializer):
class Meta:
model = Store
fields = '__all__'
