Обновить последнюю вставленную запись в Django - PullRequest
3 голосов
/ 12 октября 2019

В Django я хочу получить последнюю вставленную запись из базы данных и обновить ее значения.

Я использую эту модель:

def User(models.Model):
    name = models.CharField(max_length=15)

Я запускаю следующий код, чтобы получитьпоследняя вставленная запись и обновление имени:

User.objects.last().update(name=‘NEW NAME’)

Однако ошибка заключается в том, что обновление не является известным методом.

Действительно ли .last () возвращает всю запись или толькопервичный ключ?

Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 12 октября 2019

Действительно ли .last() возвращает всю запись или только первичный ключ?

.last() [Django-doc] возвращает последний User объект или None, если такой записи нет.

Теперь один объект модели действительно имеет нет .update(..)метод. Только QuerySet имеет метод update(..) [Django-doc] . Таким образом, вы можете, например, получить его, изменить поле и затем сохранить объект:

last_user = User.objects.last()
if last_user is not None:
    last_user.name = 'NEW NAME'
    last_user.save()
0 голосов
/ 13 октября 2019

вы должны сначала получить пользовательскую модель, затем использовать последнюю, как это user = User.objects.all().last() , и теперь вы можете обновить с этим кодом user.name = 'Daniel' user.save()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...