Обновляйте только определенные поля в моделях.Модель
у меня есть модель
class Survey(models.Model):
created_by = models.ForeignKey(User)
question = models.CharField(max_length=150)
active = models.NullBooleanField()
def __unicode__(self):
return self.question
и теперь я хочу обновить только
2 ответа:
для обновления подмножества полей можно использовать
update_fields
:survey.save(update_fields=["active"])
The способ:
Survey.objects.filter(pk=survey.pk).update(active=True)
обычно правильным способом обновления определенных полей в одном или нескольких экземплярах модели является использование
update()
метод на соответствующем наборе запросов. Затем вы делаете что-то вроде этого:affected_surveys = Survey.objects.filter( # restrict your queryset by whatever fits you # ... ).update(active=True)
таким образом, вам не нужно называть
save()
на вашей модели больше, потому что он автоматически сохраняется. Кроме того,update()
метод возвращает количество экземпляров опроса, на которые повлияло обновление.