Обновление записи в базе данных с помощью Django
Я пытаюсь обновить запись в базе данных с помощью Django, но она добавляет ту же запись снова. Как я могу это исправить? Код приведен ниже.
def update(request, id):
book = tblbook.objects.get(id=id)
form = tblbook(BookID = book.BookID, BookName=book.BookName, Genre=book.Genre,Price=book.Price)
form.save()
return redirect("/show")
ваш объект находится в книге, так как вы использовали метод get() теперь вы должны сделать что-то вроде этого
object_name.column_name = "Your value that you want to save"
Согласно вашему фрагменту это будет выглядеть следующим образом
book.BookID = "1"
book.BookName = "Any book name"
book.Genre = "Any genre"
book.Price = "Price of the book"
book.save()
Вы также можете использовать метод update() с методом filter(), и это будет выглядеть примерно так
book = tblbook.objects.filter(id=id).update(BookID = "123", BookName="Any book name", Genre= "any genre", Price="price")
Ваш код вставляет новую запись в БД. Предположим, вы хотите обновить название книги, тогда следующий код может помочь-
book = tblbook.objects.get(id=id)
book.BookName = "название некоторой книги"
book.save()
аналогичным образом можно обновить и другие поля