django rest 框架中的单元测试错误

问题描述

我在运行单元测试时遇到以下错误,但从邮递员发帖时它工作正常。

{'users': [ErrorDetail(string='This field is required.',code='required')]}

我的serializer.py:

class UserSerializer(serializers.Serializer):
    first_name = serializers.CharField(max_length=60,allow_blank=False)
    last_name = serializers.CharField(max_length=60,allow_blank=False)
    email = serializers.EmailField(max_length=100,allow_blank=False)


class CompanySerializer(serializers.Serializer):
    users = UserSerializer(many=True,write_only=True)

    class Meta:
        model = Company
        fields = '__all__'
        extra_kwargs = {
            'tech_tags': {'required': False}
        }

这是我的单元测试。序列化程序中不需要 tech_tags,但它在测试期间显示 tech_tags required 错误。即使用户数据在请求有效负载中发送,用户数据也显示必需错误

def test_create_company(self):
        request_data =  {
            "name": "Test Company","users": [
                {
                    "first_name": "Test Name.","last_name": "Test Name.","email": "email",}
            ]
        }
        request = self.factory.post('/api/company',request_data)
        view = CompanyViewSet.as_view({'post':'create'})
        force_authenticate(request,user=self.admin_user)
        response = view(request)
        self.assertEqual(response.status_code,201)

这里即使用户以有效载荷发送但显示错误

{'users': [ErrorDetail(string='This field is required.',code='required')]}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)