Django在不存储的情况下解析数据以进行建模



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

@dataclass
class Example:
id : int
name : str

如果我使用django模型和序列化程序,我将使用标准模型序列化程序和模型类:

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

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

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

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

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

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

最新更新