Django CreateView object.id в get_succes_url pk(id) является NONE, а затем после перенаправления на другой URL выводит ID созданной записи

У меня есть проблема, которую я никак не могу решить. После создания рабочего заказа я хочу перенаправить на страницу деталей этого заказа. Вот мой models.py

class Radni_nalozi(models.Model):
    Klijent = models.ForeignKey(Klijenti, on_delete=models.CASCADE)
    Pacijent = models.CharField(max_length=100)
    Rok_isporuke = models.DateField()
    Cijena = models.FloatField(default=0)
    Napomene = models.CharField(max_length=400,blank=True)
    Zaduzenja = models.CharField(max_length=400,blank=True)
    Status = models.CharField(max_length=50, choices=STATUS_CHOICES, default = "OTVOREN")
    Aktivan = models.BooleanField(default=True)

    def __str__(self):
       return f"{self.id} - {self.Klijent}, {self.Pacijent}"

А вот моя модель формы:

class RadniModelForm(BSModalModelForm):
    class Meta:
        model = Radni_nalozi
        fields = ["Klijent","Pacijent","Rok_isporuke","Napomene","Zaduzenja"]
        labels = {"Klijent":"Klijent: ", "Pacijent":"Pacijent: ", "Rok_isporuke":"Rok isporuke: ", "Napomene":"Napomene: ","Zaduzenja":"Zaduženja: "}
        widgets = {'Rok_isporuke': DatePickerInput(options={
                        "locale":"en-gb",
                    })}

Я хочу создать новый рабочий заказ и использую django BSModalCreateView. Вот мой views.py:

class RadniCreateView(LoginRequiredMixin,BSModalCreateView):
    template_name = 'app/radni_nalozi/dodaj_rn.html'
    form_class = RadniModelForm


    def get_form(self):
        form = super(RadniCreateView,self).get_form() #instantiate using parent
        form.fields['Klijent'].queryset = Klijenti.objects.filter(Aktivan=1)
        return form

    def get_context_data(self, **kwargs):
        context = super(BSModalCreateView, self).get_context_data(**kwargs)
        context['title'] = 'NOVI RADNI NALOG'
        context['gumb'] = 'KREIRAJ'
        return context

    def get_success_url(self):
        print(self.object.pk)
        return reverse_lazy('detalji_rn', kwargs={'pk': self.object.pk})

The command print(self.object.pk) returns NONE although the object is created. If I put some other hardcoded value in reverse_lazy function (for example number 13) then my view executes, it redirects to the hardcoded value and prints out command print(self.object.pk) two times, first with value NONE and then with the value of just created entry?

Как я могу получить доступ к пк созданной записи до перенаправления просмотра, чтобы я мог перенаправить на страницу подробностей этой созданной записи (рабочего заказа)?

Пожалуйста, помогите! Заранее спасибо!

Похоже, что при вызове get_success_url() объект не может быть получен. Я не вижу ошибок в коде, но не понимаю полезности этой строки:

context = super(BSModalCreateView, self).get_context_data(**kwargs)

Изменив super() контекста, вы, возможно, ищете объект не в том классе. Возможно, это сработает, если вы измените его на этот:

context = super(RadniCreateView, self).get_context_data(**kwargs)
Вернуться на верх