Как получить Id из CreateView в django?
Мне нужна помощь в получении id
из объекта в django.
У меня есть createView, где я хочу отправить уведомление для пользователя, когда создается новый объект, и мне нужен Id объекта...
def form_valid(self, form):
# setting fields that are not open to user
form.instance.created_by = self.request.user
form.instance.status = 'open'
messages.success(self.request, 'Ticket Created Successfully!')
Notification.objects.create(
created_by=self.request.user,
created_for=form.instance.responsible,
title=f"New ticket from {self.request.user.first_name} {self.request.user.last_name} =====> {form.instance.id}",
message=f"Hello",)
return super().form_valid(form)
Проблема в том, что {form.instance.id}
всегда отсутствует. Кто-нибудь может помочь мне с этим? Заранее спасибо.
Вы должны первоначально вызвать метод super()
, а затем использовать self.object
для получения только что созданного экземпляра.
class MyCreateView(CreateView):
def form_valid(self, form):
result = super().form_valid(form)
print("This is my newly created instance", self.object.pk)
return result