我正在用Django开发应用程序。
我想创建一个模型中存储的数据的精确副本到另一个模型中。 两种模型都已经声明为:
class my_model(models.Model):
Field_A = models.CharField(max_length=256,blank=True,null=True)
Field_B = models.CharField(max_length=25,null=True)
Field_C = models.TextField(blank=True,null=True)
class copy_model(models.Model):
Field_A = models.CharField(max_length=256,null=True)
Field_C = models.TextField(blank=True,null=True)
现在,我发现的唯一方法是一个一个地复制所有元素,就像这样:
def copy_model_function():
copy_model.objects.all().delete()
source_rows = my_model.objects.all()
for element in source_rows:
copied_row = copy_model.objects.create()
if not pd.isnull(element.Field_A):
copied_row.Field_A = element.Field_A
if not pd.isnull(element.Field_B):
copied_row.Field_B = element.Field_B
if not pd.isnull(element.Field_C):
copied_row.Field_C = element.Field_C
copied_row.save()
注意:如果不是非null函数,则循环将避免在复制模型中填充源模型中没有数据的NAN。
我敢打赌,有一种更快的方法可以做到,但我找不到。有什么建议吗?