«Здравствуйте, мне нужно добавить запись в одну модель (Historico) и обновить статус записи в другой модели (Factura) в той же форме. Однако в консоли появляется ошибка 302.
[23/апр/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 из одной и той же формы.






Я не очень хорошо знаком с django, однако я знаю, что HTTP-код 302 не является ошибкой. Это просто редирект. Вы должны проверить фактический отправляемый ответ, так как он может содержать заголовок Location: http://example.com.
Обновлено:
Проблема в том, что вы возвращаете перенаправление в почтовом запросе. Если вы используете какой-то клиент для отправки почтового запроса, и он не соответствует заголовку Location, то это ваша проблема. Похоже, что все на вашем бэкэнде идет нормально.