我必须建模。我想将模型对象从一个模型复制到另一个模型:
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
类,并将其作为Profile
和SurveyProfile
的具体类继承,但这并不影响我上面提到的内容)
关于django - 在Django中将模型对象从模型复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10817422/