Why is my serializer test giving me a "TypeError: 'ReturnDict' object is not callable" error?

Why is my serializer test giving me a "TypeError: 'ReturnDict' object is not callable" error?

我正在使用 Django 2.2、Python 3.7、Django rest 框架和 pytest。我想编写一个单元测试来查看我的序列化程序是否可以创建我的模型。我的测试看起来像这样...

@pytest.mark.django_db
def test_coop_create(self):
    """ Test coop serizlizer model """
    state = StateFactory()
    serializer_data = {
        "name": "Test 8899",
        "types": [
            {"name": "Library"}
        ],
        "address": {
            "formatted": "222 W. Merchandise Mart Plaza, Suite 1212",
            "locality": {
                "name": "Chicago",
                "postal_code": "60654",
                "state_id": state.id
            }
        },
        "enabled": "true",
        "phone": "7739441426",
        "email": "myemail",
        "web_site": "http://www.1871.com/"
    }

    serializer = CoopSerializer(data=serializer_data)
    serializer.is_valid()
    print(serializer.errors())
    assert serializer.is_valid(), serializer.errors()
    result = serializer.save()
    print(result)

但是,"serializer.errors()" 正在生成输出

TypeError: 'ReturnDict' object is not callable

我不清楚为什么或如何进一步调试。我的序列化程序的代码是

class CoopSerializer(serializers.ModelSerializer):
    types = CoopTypeSerializer(many=True)
    address = AddressTypeField()

    class Meta:
        model = Coop
        fields = ['id', 'name', 'types', 'address', 'phone', 'enabled', 'email', 'web_site']
        extra_kwargs = {
            'phone': {
                'required': False,
                'allow_blank': True
            }
        }

    def to_representation(self, instance):
        rep = super().to_representation(instance)
        rep['types'] = CoopTypeSerializer(instance.types.all(), many=True).data
        rep['address'] = AddressSerializer(instance.address).data
        return rep

    def create(self, validated_data):
        #"""
        #Create and return a new `Snippet` instance, given the validated data.
        #"""

        coop_types = validated_data.pop('types', {})
        instance = super().create(validated_data)
        for item in coop_types:
            coop_type, _ = CoopType.objects.get_or_create(name=item['name'])  #**item)
            instance.types.add(coop_type)

        return instance

底层模型代码是...

class Coop(models.Model):
    objects = CoopManager()
    name = models.CharField(max_length=250, null=False)
    types = models.ManyToManyField(CoopType)
    address = AddressField(on_delete=models.CASCADE)
    enabled = models.BooleanField(default=True, null=False)
    phone = PhoneNumberField(null=True)
    email = models.EmailField(null=True)
    web_site = models.TextField()

这里有 GitHub link 如果你真的想发疯 -- https://github.com/chicommons/maps/tree/master/web.

应该是serializer.errors而不是serializer.errors()

.errorsproperty, 不是方法:)