Tengo una tabla la cual tiene varios foreign Keys a una misma tabla.
Ahora, el problema esta cuando quiero guardar valores en esta tabla,
me da diversos errores.
El model.py es este:
class Rendicion(models.Model):
....
rindente = models.ForeignKey(Funcionarios, related_name = "rindente")
gerente_area = models.ForeignKey(Funcionarios, related_name = "gerente")
autorizador = models.ForeignKey(Funcionarios, related_name = "autorizador")
En el View.py he probado de dos maneras distintas:
rendicion = Rendicion(codigo,rindente,gerente_area,autorizador,eval(monto_rendido),eval(monto_devuelto),f,
aprobacion, nro_doc)
y el error es:
ERROR: el valor es demasiado largo para el tipo character varying(1)
INSERT INTO "caja_rendicion"
Pruebo de la siguiente manera:
rendicion = Rendicion()
rendicion.codigo=codigo
rendicion.rindente=rindente
rendicion.gerente_area=gerente_area
rendicion.autorizador=autorizador
rendicion.monto_rendido=eval(monto_rendido)
rendicion.monto_devuelto=eval(monto_devuelto)
rendicion.fecha = f
rendicion.aprob_fiscal=aprobacion
rendicion.nro_doc=nro_doc
rendicion.save()
Y me sale el error
ERROR: el valor null para la columna «rindente_id» viola la
restricción not null INSERT INTO "caja_rendicion"
Alguna ayuda ?, ya estoy casi dos dias parado por culpa de esto
(tambien es verdad que solo trabajo de noche unas horas :p)
--
Pedro Muñoz a.k.a Droper
UTPINUX: http://www.utpinux.com
APESOL: http://www.apesol.org
Blog: http://droper.utpinux.org
--
Julián
caja_rendicion es el nombre interno de la tabla.
En la base de datos, uno de los campos de la tabla estaba mal definido
y era mas pequeño que el codigo de su clave foranea, por eso lo de
"varing(1)", una atrocidad mia.