Estoy comenzado con esto de Django y me ha surgido una duda que me está trabando un poco.
En PHP esto lo hacía muy fácil a través de GET y supongo que en DJango debe ser más facil aún ya que por lo que llevo hecho la verdad ha sido todo bastante más sencillo que lo que hacía antes.
El tema es el siguiente. Tengo 2 Modelos uno de Clientes y uno de Ordenes de Trabajo (Client y WorkOrder)
Bien ahora viene lo que no se como implementar. tengo por un lado el formulario para clientes y para ordenes de trabajo por otro lado.
Código Python:
Ver original
from django import forms from .models import Client class ClientForm(forms.ModelForm): class Meta: model = Client fields = ["dni_cuit", "first_name", "last_name", "email", "phone", "address"] def clean_dni_cuit(self): dni_cuit = self.cleaned_data.get('dni_cuit') return dni_cuit def clean_first_name(self): first_name = self.cleaned_data.get('first_name') return first_name def clean_last_name(self): last_name = self.cleaned_data.get('last_name') return last_name def clean_email(self): email = self.cleaned_data.get('email') return email def clean_phone(self): phone = self.cleaned_data.get('phone') return phone def clean_address(self): address = self.cleaned_data.get('address') return address
Ordenes de trabajo está relacionado con clientes. ya que una orden debe pertenecer a un cliente.
Hasta aquí ningún problema. Pero ahora viene lo que yo antes hacía en PHP sin problema y ahora no se como implementarlo en Django.
la idea es que cuando un empleado quiere agregar una nueva orden Primero aparece un formulario que le permite ingresar el DNI del cliente. Este formulario cuando lo utilizaba en php no hacía nada en especial solo enviaba por GET a la barra de direcciones el DNI del cliente. y luego viene la parte que quiero llegar a lograr.
Ahora la idea es la siguiente
1- si el DNI existe en la table Client en la base de datos la vista muestra los datos del cliente y un boton para editarlo en caso de que el mismo haya cambiado algún dato como el teléfono desde la última vez que acudio a la tienda. Y se muestra el formulario para agregar la orden el cual ya toma el ID del cliente así que no es necesario completar ese campo.
2- Si el DNI no existe en la base de datos (y esto es lo que no se como implementar) quiero que se genere un formulario único para agregar al cliente y la orden en el mismo momento Es decir que cuadno haga clic en el boton submit me cree primero el cliente en la tabla correspondiente y la orden de trabajo en su tabla. Pero reitero con un formulario único.
Ahora mismo ya estoy usando la aplicacion sin problemas con formularios individuales. Creo los clientes por un lado y las ordenes por el otro. Pero necesito simplificar esto para que sea más fluido el uso.
Espero se entienda lo que quiero hacer y que puedan ayudarme!!!!
Muchas gracias a quien pueda ayudarme!