[英]How can I map a django model to a python dataclass
github 中曾经有一个项目允许您将 map django 模型转换为 Z23EEEB4347BDD26BFC6B7EE,但现在它的数据类已经消失了。 您仍然可以使用回程机器检查它:
https://web.archive.org/web/20201111163327/https://github.com/proofit404/mappers https://web.archive.org/web/20201101163715/https://proofit404.github.io/mappers /
我正在尝试找到另一种方法将 map django 模型转换为 python 数据类,但我似乎找不到任何类似的项目
在 Django 模型中使用 Python 数据类检查我的答案
可以使用这里实现的装饰器来完成:
from django.db import models
from dataclasses import dataclass
# you can copy this decorator and use it or implement your own
def with_dataclass_mapper(dataclass):
def wrapper(cls):
def mapper(self):
dataclass_kwargs = {}
for field in dataclass.__dataclass_fields__:
dataclass_kwargs[str(field)] = getattr(self, str(field))
return dataclass(**dataclass_kwargs)
# add 'map' method to class
setattr(cls, 'map', mapper)
return cls
return wrapper
@dataclass
class MyDataclass:
field1: str
field2: str
@with_dataclass_mapper(MyDataclass)
class MyModel(models.Model):
field1 = models.CharField(default="", max_length=255)
field2 = models.CharField(default="", max_length=255)
modelInstance = MyModel(field1="foo", field2="bar")
myDataclassInstance = modelInstance.map()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.