django在UpdateView发布的文章中出现302警告

uqzxnwby  于 2023-05-01  发布在  Go
关注(0)|答案(1)|浏览(164)

“您好,我需要的是在一个模型(Historico)中添加一条记录,并以相同的形式更新另一个模型(Factura)中记录的状态。但是,我在控制台中得到了一个302错误。
[23/Apr/2023 18:02:40]“POST /facturas/actualizar/1 HTTP/1.1”302 0
这是我的表格:

class FormActualizarFactura(forms.ModelForm):
    comentario = forms.CharField(widget=forms.Textarea)
    
    class Meta:
        model = Factura
        fields = ('estado', 'etapa', 'email', 'comentario')

这是我的观点:

class ActualizarFactura(UpdateView):
    model = Factura
    form_class = FormActualizarFactura
    template_name = 'facturas/fac_actualizar.html'
    success_url = reverse_lazy('facturas:listaFacturas')
    
    def post(self, request, *args, **kwargs):
        try:
            if super().post(request, *args, **kwargs):
                historico = Historico()
                historico.factura = isinstance(self.object, Factura) and self.object or None
                historico.estado = self.object.estado
                historico.user = request.user
                historico.comentario = request.POST.get('comentario')
                historico.save()
            else:
                # Se produjo un error al actualizar la factura
                messages.error(request, f'Error al actualizar la factura: {self.object.NFactura}')
                
        except Exception as e:
            # Se produjo un error general
            messages.error(request, f'Error general: {e}')
        
        return redirect('facturas:listaFacturas')

你能帮助我吗?或者我应该实现另一种方法来拥有两个单独的表单(但在单个HTML表单中验证),并且每个表单都在TemplateView中执行其功能?“
更新一个模型中记录的状态,并将其添加到Historico表中,所有这些都来自同一个表单。

kupeojn6

kupeojn61#

我对django不是很熟悉,但是我知道HTTP代码302不是错误。这只是一个重定向。您应该检查发送的实际响应,因为它可能包含Location: http://example.com报头。
编辑:
问题是你在post请求中返回了一个重定向。如果你使用某种客户端来发送post请求,并且它没有跟随Location头,那么这就是你的问题。看起来你的后端一切都很好。

相关问题