Я хочу создать и сохранить объект в моем представлении, используя CreateView.
> пример в документации django , использует форму для создания нового объекта, когда у меня есть значение поля (я знаю пользователя и книгу, которую он выбрал) и хочу создать его внутри представления, что-то вроде это.
from django.views import generic
class BookReserveView(generic.CreateView):
model = Reservation
person = current_login_user # the user who logged in
book = selected_book # selected book (I have the pk)
success_url = reverse_lazy('book:reserve_book') # when the object saved go to this url
и это моя модель бронирования.
class Reservation(models.Model):
person = models.ForeignKey(User, on_delete=models.CASCADE)
book = models.ForeignKey(Copy, on_delete=models.CASCADE)
date_reserved = models.DateTimeField(auto_now_add=True)
Я попробовал этот код, и он работал для меня. но мне нравится использовать общие представления (CBV)
from book.models import Copy,Reservation
def BookReserveView(request,pk):
book = Copy.objects.get(pk=pk)
reserve_obj = Reservation(book=book, person=request.user)
reserve_obj.save()
return HttpResponse(str(reserve_obj))