django - 在Django中将模型对象从模型复制到另一个

标签 django django-models

我必须建模。我想将模型对象从一个模型复制到另一个模型:
Model2是Model1的副本(此模型的m2m字段过多)
型号1:

class Profile(models.Model):
      user = models.OneToOneField(User)
      car = models.ManyToManyField(Car)
      job = models.ManyToManyField(Job)
      .
      .

这是一个调查应用程序。我想在用户参加调查时保存其个人资料(因为他可以在调查后编辑个人资料)
我创建了另一个模型来保存用户调查时的用户个人资料(不确定其正确方式)
class SurveyProfile(models.Model):
      user = models.OneToOneField(SurveyUser) #this is another model that takes survey users
      car = models.ManyToManyField(Car)
      job = models.ManyToManyField(Job)

如何将用户个人资料从个人资料复制到SurveyProfile。

提前致谢

最佳答案

deepcopy等不起作用,因为类/模型不同。

如果您确定SurveyProfile具有Profile *中存在的所有字段,则应该可以使用(未​​经测试):

for field in instance_of_model_a._meta.fields:
    if field.primary_key == True:
        continue  # don't want to clone the PK
    setattr(instance_of_model_b, field.name, getattr(instance_of_model_a, field.name))
instance_of_model_b.save()
*(在这种情况下,我建议您创建一个抽象的ProfileBase类,并将其作为ProfileSurveyProfile的具体类继承,但这并不影响我上面提到的内容)

关于django - 在Django中将模型对象从模型复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10817422/

相关文章:

python - 如何更改 Django REST Framework 中 RetrieveAPIView 中 lookup kwargs 字段的键?

jquery - 初学者 : <input type ="folder">?

python - 跟踪表格或某些数据进行分析的最佳方法是什么?

python - Django 中的全局 upload_to 覆盖

django - 如何组织一个webapp?

python - 匹配另一个 url - 正则表达式 django urls

mysql - 迁移现有数据库字段。运行时出现 E340 错误

database - Django - 将模型代码与数据库进行比较

django - 许多文件以 ImageField 形式上传 - django

python - Django-filter 1.1.0 中的多个模型