我在rest_framework
中四处探索,试图弄清楚它是如何工作的,并遇到了一个对Model.objects.create()
的调用,但我在docs或source code中找不到django模型管理器的create()
方法。它看起来是动态生成的。它到底是做什么的?我在哪里可以找到它的代码?如果我想覆盖它,我的实现必须做什么?我找到了this question,但它只说调用super().create()
方法。
我在rest_framework
中四处探索,试图弄清楚它是如何工作的,并遇到了一个对Model.objects.create()
的调用,但我在docs或source code中找不到django模型管理器的create()
方法。它看起来是动态生成的。它到底是做什么的?我在哪里可以找到它的代码?如果我想覆盖它,我的实现必须做什么?我找到了this question,但它只说调用super().create()
方法。
1条答案
按热度按时间4c8rllxm1#
Django的管理器会在
QuerySet
上寻找相同的方法,以防Manager
中不存在该方法,因此它会在底层QuerySet
上调用**.create()
**方法[Django-doc],该方法的实现方式为[GitHub]:因此,它将使用传递的关键字创建一个模型对象,并使用
force_insert=True
保存它以稍微提高效率,并返回在数据库中创建的项。