как обновить значения таблицы базы данных с помощью функции обновления в django - PullRequest
0 голосов
/ 14 июля 2020

У меня уже есть запись в моей таблице базы данных, и я хочу обновить ее значениями 12 и 6. Но почему-то функция обновления, похоже, ничего не делает. Я не хочу создавать новый экземпляр, я просто хочу перезаписать уже существующее значение. PF - это имя моей таблицы БД. Я понимаю, что objects связывается как с атрибутами pass_number, так и fail_number модели таблицы, поэтому я предполагаю, что оба будут обновлены значениями. Однако, когда я go в таблице, я все еще вижу старые значения.

event1 = PF(
    pass_number = 12,
    fail_number = 6,
)
event1.objects.update(event1)

Ошибка, которую я вижу в терминале:

TypeError: update() takes 1 positional argument but 2 were given

Ответы [ 2 ]

2 голосов
/ 14 июля 2020

Если PF - это название вашей модели и вы хотите обновить запись в базе данных.

Прежде всего, вам нужно получить запись из базы данных, которую необходимо обновить. Затем вы можете обновить эту запись. Для получения отдельной записи вы можете использовать метод get, а затем обновить соответствующие поля и сохранить отдельную запись. Он обновит вашу существующую запись.

Пример кода для обновления отдельной записи в базе данных

event1 = PF.objects.get(pk=1)
event1.pass_number = 12
event1.fail_number = 6
event1.save()

ПРИМЕЧАНИЕ: Здесь, пожалуйста, замените 1 первичным ключом вашего запись, которая существует в базе данных.

Чтобы обновить несколько записей, вы должны получить все записи, которые необходимо обновить. Вы можете использовать filter для фильтрации данных или all, если хотите получить все записи.

Пример кода для обновления всех записей в базе данных

events = PF.objects.all()
events.update(pass_number = 12, fail_number = 6)

Пример кода для обновления отфильтрованной записи в базе данных

Вы можете увидеть примеры с фильтром и обновлением по следующей ссылке. Спасибо https://docs.djangoproject.com/en/3.0/ref/models/querysets/#update

0 голосов
/ 14 июля 2020

Вы пробовали

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