得到断言错误是我的Django(1.8.4)

Nir*_*ary 3 python django-models django-rest-framework

from rest_framework import serializers
from .models import Stock


class StockSerializer(serializers.ModelSerializer):

    class Meta:

        model = Stock

        #field = ('ticker','volume')
        field = '__all__'
Run Code Online (Sandbox Code Playgroud)

我得到一个异常值: ("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 StockSerializer serializer.",)

Roh*_*rma 7

我假设您的序列化程序目前看起来像:

class StockerSerializer(serializers.Serializer):
    class Meta:
        model = Stock
Run Code Online (Sandbox Code Playgroud)

Django 抱怨的问题是元类需要定义 Stock 模型中需要序列化的字段。你有三个选择:你可以放fields = (‘some’, ‘fields’,...)exclude = (‘fields’, ‘other’, ‘than’, ‘these’...)fields = ‘__all__’

最简单的选项是最后一个,它会导致序列化程序序列化 Stock 模型中的所有字段,这可能是您想要的。然后你应该修改你的代码,看起来像:

class StockerSerializer(serializers.Serializer):
    class Meta:
        model = Stock
        fields = ‘__all__’
Run Code Online (Sandbox Code Playgroud)


Dan*_*man 6

如错误消息所示,必填属性fields带有',而不是field