Что делает метод django Manager.create()?

Я копался в rest_framework, пытаясь понять, как это работает, и наткнулся на вызов Model.objects.create(), но я не могу найти метод create() для менеджеров моделей django ни в документации, ни в исходном коде . Похоже, что он генерируется динамически. Что именно он делает? Где я могу найти его код? Если я захочу переопределить его, что должна будет делать моя реализация? Я нашел этот вопрос, но там говорится только о вызове метода super().create().

Django's manager will look for the same method on a QuerySet in case that method does not exists in the Manager. So it will call the .create() method [Django-doc] on the underlying QuerySet, which is implemented as [GitHub]:

def create(self, **kwargs):
    """
    Create a new object with the given kwargs, saving it to the database
    and returning the created object.
    """
    obj = self.model(**kwargs)
    self._for_write = True
    obj.save(force_insert=True, using=self.db)
    return obj

Таким образом, он создаст объект модели с переданными ключевыми словами, сохранит его с помощью force_insert=True, чтобы немного повысить эффективность, и вернет созданный объект в базу данных.

Вернуться на верх