Объекты Django model manager.создать где находится документация?
Я всегда читаю, что я должен использовать
model = Model(a=5, b=6)
model.save()
но я только что видел, что есть функция менеджера create, потому что я видел приложение django с открытым исходным кодом, используя его.
model = Model.objects.create(a=5, b=6)
print model.pk
1
так это предлагается использовать его? Или это все еще предпочтительнее использовать .метод Save. Я предполагаю, что объекты.create попытается создать его независимо от того, что, в то время как save может сохранить существующий объект, если указан pk.
Это документы, которые я нашел: https://docs.djangoproject.com/en/dev/topics/db/queries/#creating-objects
4 ответов:
Это на странице "QuerySet API reference", связанный из индекса документации.
p = Person.objects.create(first_name="Bruce", last_name="Springsteen")эквивалентно:
p = Person(first_name="Bruce", last_name="Springsteen") p.save(force_insert=True)force_insert означает, что новый объект всегда будет создан.
Обычно вам не нужно будет беспокоиться об этом. Однако, если ваша модель содержит заданное вручную значение первичного ключа и если это значение уже существует в базе данных, вызов create () завершится с ошибкой IntegrityError так как первичные ключи должны быть уникальными. Будьте готовы к обработайте исключение, если вы используете ручной основной ключи.
в основном, эти два метода эквивалентно. Использование
Model.objects.createможет быть предпочтительнее, так как он больше подходит для стиля Django.
create по существу делает то же самое. ниже приведен исходный код для создания.
def create(self, **kwargs): """ Creates 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он создает экземпляр, а затем сохраняет его.
Comments