2. 如何复制一个现有的模型对象?

Django中没有内建的方法用于复制模型实例,用所有字段的复制值来创建新的模型类是可行的。

如果将一个实例的 pk 集设置为None保存实例,那这个实例用于在数据库中创建新记录。这意味着除 pk 外的所有字段都被复制了。

In [2]: Hero.objects.all().count()
Out[2]: 4

In [3]: hero = Hero.objects.first()

In [4]: hero.pk = None

In [5]: hero.save()

In [6]: Hero.objects.all().count()
Out[6]: 5