|
Table of contents
|
Вы уже видели как это делается: для того, чтобы вставить запись в вашу базу данных сначала надо создать экземпляр модели с помощью именованных аргументов, вот так: >>> p = Publisher(name='Apress', ... address='2855 Telegraph Ave.', ... city='Berkeley', ... state_province='CA', ... country='U.S.A.', ... website='http://www.apress.com/')
Этот пример создания экземпляра модели не
производит изменений в базе данных. Эта запись не сохраняется в
базе данных пока не будет вызван метод
>>> p.save()
Вышеприведённые действия с точки зрения SQL операторов выглядят так: INSERT INTO book_publisher
(name, address, city, state_province, country, website)
VALUES
('Apress', '2855 Telegraph Ave.', 'Berkeley', 'CA',
'U.S.A.', 'http://www.apress.com/');
Так как модель >>> p.id 52 # значение может отличаться для ваших данных
Последующие вызовы метода >>> p.name = 'Apress Publishing' >>> p.save()
В SQL это будет выглядеть так: UPDATE book_publisher SET
name = 'Apress Publishing',
address = '2855 Telegraph Ave.',
city = 'Berkeley',
state_province = 'CA',
country = 'U.S.A.',
website = 'http://www.apress.com'
WHERE id = 52;
Да, следует отметить то, что все поля будут обновлены, а не только те, что были изменены. В зависимости от реализации вашего приложения, такое поведение может вызвать «гонки» (race condition). См «Изменение множества объектов одним запросом» далее о том, как выполнять подобные запросы: UPDATE books_publisher SET
name = 'Apress Publishing'
WHERE id=52;
|
Found misprint?
Select it with the mouse and hit Enter
-
Processed:
33
1
199
25
The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!
We are glad to hear your questions, comments or suggestions!
(Open in new tab)
Users number: 601
Русская группа
Ускорить процесс перевода!
ЯМ:41001223475816
|
| © 2008-2012 Ruslan Popov @ gmail.com | Powered by Django 1.2.5 |