Django 将数据解析为模型而不存储

Django parse data to model without storing

我想知道是否有一种方法可以在不进行任何数据库交互的情况下将 json 解析为模型 class 的对象。 如果我们在没有 django 的情况下做我想做的事情,我可以将 Json 序列化为一个对象 class,例如在 marshmallow_dataclass

的帮助下
@dataclass
class Example:
    id : int
    name : str

如果我用 django 模型和序列化器来做,我用标准模型序列化器和模型来做 class:

serializer = ExampleSerializer(data=data)
serializer.is_valid(raise_exception=True)
serializer.save()

所以现在的问题是是否有办法将它们结合起来。为此,我有一个跨不同应用程序的共享模型。现在因为有些只是处理数据,没有必要存储它,我目前这样做但这是一个性能缺陷。同时,通过组合它们,我想实现不必维护具有相同字段的模型和 class。 因此,我如何使用模型 class 来解析数据而不必将它们存储在数据库中?

如果我对问题的理解正确,您希望对预定义模型 classes 进行组合验证,而无需实际使用 django 提供的必须创建模型实例的方法。 实现此目的的一种有趣方法是使用 pydantic-django 来完成此任务。 您可以创建一个 pydantic model_class 来根据需要解析数据,这将确保为您完成所有验证。 例如,如果您的示例模型如下:

class Example(models.Model):
    f1 = models.CharField(max_length=255)

用于验证的相关 pydantic class 可以是:

from pydantic_django import ModelSchema
class ExampleSchema(ModelSchema):
    class Config:
        model = Example