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 был правильным.
Что я делаю неправильно? Надеюсь, вы сможете понять мою проблему. Ребята я буду благодарен за любую помощь.
Спасибо