如何解决使用Django棉花糖插入外键
serializer.py
class ClientSerializer(Schema):
id = fields.Integer()
name = fields.String(required=True,validate=lambda x: len(x) > 0)
created_at = fields.DateTime()
updated_at = fields.DateTime()
class ProjectSerializer(Schema):
id = fields.Integer()
name = fields.String(required=True,validate=lambda x: len(x) > 0)
project_type = EnumField(ProjectType,by_value=True)
status = EnumField(ProjectStatus,by_value=True)
client = fields.Nested(ClientSerializer(),dump_only=True)
views.py
project_serializer = ProjectSerializer(data=request.data)
project_serializer.is_valid(raise_exception=True)
请求
{
"name": "Test 1","client": "Test Client"
}
models.py
class Project(TenantBaseModel):
name = models.TextField()
project_type = EnumChoiceField(ProjectType,choice_builder=attribute_value)
status = EnumChoiceField(ProjectStatus,choice_builder=attribute_value,default=ProjectStatus.CREATED)
client = models.ForeignKey(Client,on_delete=models.PROTECT)
我已经使用Django admin创建了一个名为“ Test Client”的客户端。我尝试传递ID,但似乎没有任何方法代替客户端名称。我收到以下错误消息,
{'client': [ErrorDetail(string='Unknown field.',code='invalid')]}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。