【问题标题】:Getting an Assertion error is my django(1.8.4)得到一个断言错误是我的 django(1.8.4)
【发布时间】:2018-06-25 05:47:43
【问题描述】:
from rest_framework import serializers
from .models import Stock


class StockSerializer(serializers.ModelSerializer):

    class Meta:

        model = Stock

        #field = ('ticker','volume')
        field = '__all__'

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

【问题讨论】:

  • 能否请您发布您的 StockSerializer 类的代码?
  • 我是 stackoverflow 的新手,所以对格式一无所知...如果发生烦人的事情,请管理..

标签: python django-models django-rest-framework


【解决方案1】:

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

class StockerSerializer(serializers.Serializer):
    class Meta:
        model = Stock

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

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

class StockerSerializer(serializers.Serializer):
    class Meta:
        model = Stock
        fields = ‘__all__’

【讨论】:

  • 感谢 Rohan 问题已解决,因为 Daniel 告诉我我使用的是字段而不是字段....它对我有用..
【解决方案2】:

正如错误消息所说,必需的属性是带有“s”的fields,而不是field

【讨论】:

    猜你喜欢
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 2015-02-13
    • 2020-10-07
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    相关资源
    最近更新 更多