2013-07-21 2 views
0

ниже код будет в порядке обновления поля строки:Джанго, как обновить более поля строки сразу

t = TheForm.objects.get(id=1) 
t.value = 1 
t.save() 

Но что, если мне нужно обновить 5-6 полей одновременно? Есть ли прямой путь?

Как обновление (value=1,value2=2)

EDIT

Я уже знаю, что я могу сделать:

t.value1 = 1 
t.value2 = 1 
t.value3 = 1 

Но я ищу для одной командной строки, как вставить один, например. (TheForm(value1=1,value2=2,value3=3))

ответ

3

Уверенный!

t.value1 = 1 
t.value2 = 2 
t.save() 

В качестве альтернативы,

TheForm.objects.filter(id=1).update(value=1, value2=2) 

(И вы можете использовать **kwargs здесь)

0

Вы можете изменить столько полей, сколько вы хотите, прежде чем сохранить.

t = TheForm.objects.get(id=1) 
t.value1 = 1 
t.value2 = 2 
t.save() 

Вы также можете использовать update метод:

t = TheForm.objects.filter(id=1).update(value1=1,value2=2) 

Обратите внимание, что с помощью update тонкость отличается. Там не будет ошибки, если объект с id=1 не существует. Сигналы до и после сохранения не будут отправляться при использовании update.

Смежные вопросы