【发布时间】:2023-01-28 19:45:22
【问题描述】:
我有一条可以发布元数据的路线。如果发布了已知字段,我想以结构化方式将它们存储在我的数据库中,只存储未知字段或验证失败的字段在 JSONField 中。
让我们假设我的模型是:
# models.py
from django.db import models
class MetaData(models.Model):
shipping_address_zip_code = models.CharField(max_length=5, blank=True, null=True)
...
unparseable_info = models.JSONField(blank=True, null=True)
我想使用内置的序列化逻辑来验证 zip_code 是否有效(5 个字母或更少)。如果是,我会正常进行并将其存储在shipping_address_zip_code 字段中。但是,如果验证失败,我想将其作为键值对存储在 unparseable_info 字段中,并仍然向调用该路由的客户端返回一条成功消息。
我有更多的领域,正在寻找一个通用的解决方案,但这里只包括一个领域可能有助于说明我的问题。
【问题讨论】:
-
是的,你可以在序列化程序中做到这一点
标签: python django django-rest-framework django-serializer