Python django get_object_or_404 внутри form_valid не работает

Надеюсь, вы сможете мне помочь, я изучаю django, в частности представления на основе классов, у меня есть следующий код.

Мне кажется, что get_object_or_404 внутри form_valid работает не так, как нужно.

class AgregarEntrada(CreateView):
    model = Entrada
    template_name = 'EntradaCrear.html'
    form_class = FormularioEntrada
    success_url = reverse_lazy('UltimasEntradas')   

    def get_context_data(self, **kwargs):
        obj = get_object_or_404(Empresa, pk = self.kwargs["pk"], slug = self.kwargs["slug"], 
        FechaCreacion = self.kwargs["FechaCreacion"]) 
        contexto = super().get_context_data(**kwargs)
        return contexto

    def form_valid(self, form):
        obj = get_object_or_404(Empresa, pk = self.kwargs["pk"], slug = self.kwargs["slug"], 
        FechaCreacion = self.kwargs["FechaCreacion"]) 
        
        form.instance.empresa_id = self.kwargs["pk"]
        form.instance.UsuarioCreo = self.request.user.username
        
        self.object = form.save()
        form.instance.Entrada = form.instance.pk  
        return super().form_valid(form)

все работает идеально, это представление сохраняет данные правильно, даже если я перехожу к /pk/slug все работает нормально, аналогично, если я меняю slug или pk в url он сразу же отправляет мне ошибку 404, что так хорошо, проблема заключается в том, что когда кто-то меняет url после того, как форма была отображена, например, pk или slug, вместо того, чтобы отправить мне ошибку, он сохраняет данные, как будто pk или slug были правильными.

Я хочу объяснить лучше. Если я перехожу по url/pk/slug, все работает нормально, но когда кто-то переходит по url/pk/slug и меняет его на url/fake-pk/fake-slug, данные все равно сохраняются, как если бы url был правильным.

Что я делаю неправильно? Надеюсь, вы сможете понять мою проблему. Ребята я буду благодарен за любую помощь.

Спасибо

Вернуться на верх