0

tengo este template renderizado con las bondaes de Django + jS+ Ajax + JQ El formulario cuenta con 9 campos, el primer campo es del tipo autocomplete, es decir me esta trayendo un campo del modelo RecepEQtaller, lo trae con èxito, automaticamente el procede a llenar con ese dato el siguiente texfield de abajo, todo con éxito, luego yo procedo a llenar manualmente los otros campos del formulario, una vez el formulario esta lleno le doy guardar y no sucede nada, no guarda el registro, porque sería que no funciona? Template generar_orden_trabajo : {% load static %}

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <link rel="stylesheet" href="{% static 'css/generar_orden_trabajo.css' %}" />

        <title>Generar Orden de Trabajo</title>
</head>
<body>
    
    <form method="post">
        {% csrf_token %}

        <!-- Buscador -->

        <div class="form-group">
            <label for="id_busqueda">Buscar Equipo:</label>
            <input type="text" name="busqueda" id="id_busqueda" class="form-control">
        </div>
        <div class="form-group">
            <label for="id_resultado">Datos del equipo:</label>
            <input type="text" name="resultado" id="id_resultado" class="form-control" readonly>
        </div> 
        
        <div class="form-group">
            <label for="id_fecha_inicio_orden_trabajo">Fecha de Inicio de Orden de Trabajo:</label>
            <input type="date" name="fecha_inicio_orden_trabajo" id="id_fecha_inicio_orden_trabajo" class="form-control">
        </div>
        <div class="form-group">
            <label for="id_tecnico_encargado">Técnico Encargado:</label>
            <input type="text" name="tecnico_encargado" id="id_tecnico_encargado" class="form-control">
        </div>
        <div class="form-group">
            <label for="id_estatus">Estatus:</label>
            <input type="text" name="estatus" id="id_estatus" class="form-control">
        </div>
        <div class="form-group">
            <label for="id_diagnostico_emitido">Diagnóstico Emitido:</label>
            <input type="text" name="diagnostico_emitido" id="id_diagnostico_emitido" class="form-control">
        </div>
        <div class="form-group">
            <label for="id_orden_compra_sujeta">Orden de Compra Sujeta:</label>
            <input type="text" name="orden_compra_sujeta" id="id_orden_compra_sujeta" class="form-control">
        </div>
        <div class="form-group">
            <label for="id_consideraciones_adicionales">Consideraciones Adicionales:</label>
            <textarea name="consideraciones_adicionales" id="id_consideraciones_adicionales" class="form-control"></textarea>
        </div>
        <div class="form-group">
            <label for="id_fecha_salida_equipo">Fecha de Salida del Equipo:</label>
            <input type="date" name="fecha_salida_equipo" id="id_fecha_salida_equipo" class="form-control">
        </div>
    
        <button type="submit" class="btn btn-primary">Guardar</button>
    </form>



    <script>
        $(document).ready(function() {
            $('#id_busqueda').autocomplete({
                source: '{% url "buscar-equipo-autocompletado" %}',
                minLength: 2,
                select: function(event, ui) {
                    $('#id_resultado').val(ui.item.value + ' - ' + ui.item.tipo_EQ + ' - ' + ui.item.numero_serie);`introducir el código aquí`
                }
            });
        });
        </script>

</body>
</html>
Vista : 
def generar_orden_de_trabajo(request):
    mensaje = None

    if request.method == 'POST':
        form = OrdenTrabajoFclass(request.POST)
        if form.is_valid():
            form.save()
            mensaje = "La orden de trabajo se ha generado correctamente."
        else:
            mensaje = "Error al procesar el formulario. Por favor, revise los datos ingresados."
    else:
        form = OrdenTrabajoFclass()

    return render(request, 'generar_orden_trabajo.html', {'form': form, 'mensaje': mensaje})
Form :
from django import forms
from .models import Orden_de_trabajo, RecepEQtaller

class OrdenTrabajoFclass(forms.ModelForm):
    class Meta:
        model = Orden_de_trabajo
        fields = '__all__'  # Esto incluirá todos los campos del modelo en el formulario

    def __init__(self, *args, **kwargs):
        super(OrdenTrabajoFclass, self).__init__(*args, **kwargs)
        # Agregar un atributo para el campo codigo_serie para personalizar su apariencia si es necesario
        #self.fields['codigo_serie'].widget.attrs.update({'class': 'form-control', 'placeholder': 'Número de serie'})

        # Personalizar el campo 'equipo' para mostrar una lista desplegable de equipos disponibles
        # Aquí puedes agregar opciones adicionales según sea necesario, como filtrar los equipos por algún criterio
        self.fields['equipo'].queryset = RecepEQtaller.objects.all()
        self.fields['equipo'].widget.attrs.update({'class': 'form-control'})
Modelo donde se espera guardar el registro: class Orden_de_trabajo(models.Model):
    nombre_cliente = models.CharField(max_length=100)
    equipo = models.ForeignKey(RecepEQtaller, on_delete=models.CASCADE)
    fecha_inicio_orden_trabajo = models.DateField(default=datetime.date.today)
   
    tecnico_encargado = models.CharField(max_length=100)
    estatus = models.CharField(max_length=100)
    diagnostico_emitido = models.CharField(max_length=100)
    orden_compra_sujeta = models.CharField(max_length=100)
    consideraciones_adicionales = models.CharField(max_length=100)
    fecha_salida_equipo = models.DateField(default=datetime.date.today)    

    def __str__(self):
        return f"{self.equipo.tipo_EQ} - Cliente: {self.equipo.nombre} - {self.fecha_inicio_orden_trabajo}"



Pues probe cambiar la vista, agregar campos ocultos, renderizar el formulario de diferentes formas , cambiar el js y nada aun, no tengo soluciones.
Nuevo colaborador
ALJ White es un usuario nuevo en el sitio. Tenlo en cuenta cuando preguntes por aclaraciones, comentes o respondas. Revisa nuestro Código de conducta.
1
  • ¿Y el action de tu form?
    – padaleiana
    el 6 may. a las 17:55

0

Tu Respuesta

By clicking “Publica tu respuesta”, you agree to our terms of service and acknowledge you have read our privacy policy.

Examina otras preguntas con la etiqueta o formula tu propia pregunta.