如何复制模型的字段实例并在django中的另一个模型上注册?

时间:2015-05-12 14:05:54

标签: python django

我正在尝试使用元类生成记录其他模型的某些字段的模型。

我的计划是复制recording_fields recording_model(这是一个要记录的模型),并通过RecordModel方法在contribute_to_class(cls,name)的子类中注册它们em> django 的Field

通过这种方式,只要recording_model recording_fields中的一个Field被更改,就可以使用信号自动创建记录。

问题是我必须使用recording_model创建完全相同的max_length个实例,包括数据库约束和要求(例如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._meta.get_field()将是所有记录的抽象基类。

我知道我可以使用Field方法来检索模型的Field实例,但我需要的是实例的副本,而不是引用。

有没有办法在django中制作<LayoutTemplate>个实例的深层副本?

0 个答案:

没有答案