Python 如何复制一个模型的字段实例并在django中的另一个模型上注册它?
我试图使用元类生成记录其他模型的一些字段的模型 我的计划是复制Python 如何复制一个模型的字段实例并在django中的另一个模型上注册它?,python,django,Python,Django,我试图使用元类生成记录其他模型的一些字段的模型 我的计划是复制recording\u model(这是一个要记录的模型)的recording\u字段,并通过django的字段的contribution\u class(cls,name)方法将它们注册到RecordModel的子类中 通过这种方式,只要记录模式的记录字段中的一个发生变化,它就能够使用信号自动创建记录 问题是,我必须创建与记录模型完全相同的字段实例,包括数据库约束和要求(例如最大长度参数) 所以情况是这样的 from django.
recording\u model
(这是一个要记录的模型)的recording\u字段
,并通过django的字段
的contribution\u class(cls,name)
方法将它们注册到RecordModel
的子类中
通过这种方式,只要记录模式
的记录字段
中的一个发生变化,它就能够使用信号自动创建记录
问题是,我必须创建与记录模型
完全相同的字段
实例,包括数据库约束和要求(例如最大长度
参数)
所以情况是这样的
from django.models import Model
from django.models.base import ModelBase
class TimeStampedModel(Model):
...
class Meta:
abstract = True
...
class RecordModelMetaClass(ModelBase):
def __init__(cls, name, bases, attrs):
...
# Register 'recording_fields' of 'recording_model'
# to subclasses of RecordModel (not reference, deep copy)
# using `contribute_to_class`.
...
class RecordModel(TimeStampedModel):
__metaclass__ = RecordModelMetaClass
recording_model = NotImplemented
recording_fields = NotImplemented
class Meta(TimeStampedModel.Meta):
abstract = True
其中,RecordModel
将是所有记录的抽象基类
我知道我可以使用Model.\u meta.get\u field()
方法检索模型的field
实例,但我需要的是实例的副本,而不是引用
有没有办法对django中的
字段
实例进行深度复制?您看到这个问题的答案了吗?