Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2015, 16:20
miguelalexep
 
Fecha de Ingreso: febrero-2014
Ubicación: Hermosillo, Sonora
Mensajes: 86
Antigüedad: 10 años, 9 meses
Puntos: 0
Objeto debe ser instancia

Buenas tardes. Mi pregunta es la siguiente, cuando lleno un campo en el template, al momento de dar click en el boton de guardar, me arroja lo siguiente.

Cannot assign "u'HURTADO PORTILLO IVAN MANUEL'": "ProductoFabricar.nombre_vendedor" must be a "Empleado" instance.

Esto sale al momento de querer guardar los campos que se llenan con autocomplete y que son foreign key a otros modelos.
Pero no tengo idea de como hacerlo una instancia. Si alguien pudiera decirme como. Anexo mi codigo.

VIEW

Código Python:
Ver original
  1. @render_to("ventas/producto_fabricar.html")
  2. def producto_fabricar(request):
  3.     almacen = get_object_or_404(Almacen)
  4.     queryset = ProductoFabricarPapel.objects.none()
  5.  
  6.     if request.method == "POST":
  7.  
  8.         form = ProductoFabricarForm(request.POST)
  9.         formset = ProductoFabricarPapelFS(request.POST, queryset=queryset)
  10.  
  11.         if form.is_valid():
  12.            nombre_vendedor = form.cleaned_data["nombre_vendedor"]
  13.            nombre_coordinador = form.cleaned_data["nombre_coordinador"]
  14.  
  15.            form.save()
  16.            
  17.         if formset.is_valid():
  18.            
  19.             for f in formset.forms:
  20.                 f.instance.producto_fabricar = form.instance
  21.            
  22.             formset.save()
  23.  
  24.             return clean_redirect('reporte_producto_fabricar', success="Se ha guardado correctamente la Orden de Producción")
  25.  
  26.     else:
  27.         form = ProductoFabricarForm()
  28.         formset =  ProductoFabricarPapelFS(queryset=queryset)
  29.  
  30.    
  31.     return { "title":"Agregar Orden de Producción", "form":form, "formset":formset }

MODEL

Código Python:
Ver original
  1. class ProductoFabricar(models.Model):
  2.     TIPOS = (
  3.         ("D/CARTA", 'D/CARTA'),
  4.         ("4/CARTAS", '4/CARTAS'),
  5.         ("OTRO", 'OTRO'),
  6.     )
  7.  
  8.    
  9.     fecha_orden_produccion = models.DateField(auto_now_add=True)
  10.     cotizacion = models.ForeignKey(Movimiento, on_delete=models.PROTECT)
  11.     nombre_producto_fabricar = models.CharField(max_length=350, default='')
  12.     fecha_entrega_acordada = models.DateField(null=True, blank=True)
  13.     fecha_entrega_confirmada = models.DateField(null=True, blank=True)
  14.     criterios_aceptacion = models.CharField(max_length=350, default='')
  15.     cantidad = models.CharField(max_length=255,null=True)
  16.     medida_final = models.CharField(max_length=255,null=True)
  17.     pag_totales = models.CharField(max_length=255,null=True)
  18.     impresion = models.CharField(max_length=255,null=True)
  19.     acabado_1 = models.CharField(max_length=255,null=True)
  20.     acabado_2 = models.CharField(max_length=255,null=True)
  21.     acabado_final = models.CharField(max_length=255,null=True)
  22.     observaciones = models.TextField(blank=True)
  23.     planilla1_frentes = models.IntegerField(null=True)
  24.     planilla2_frentes = models.IntegerField(null=True)
  25.     planilla_vueltas = models.IntegerField(null=True)
  26.     planilla_en = models.CharField(choices=TIPOS, blank=False, default='', max_length=10)
  27.     planilla_en1 = models.CharField(choices=TIPOS, blank=False, default='', max_length=10)
  28.     nombre_vendedor = models.ForeignKey(Empleado, on_delete=models.PROTECT,  related_name="vendedor")
  29.     nombre_coordinador = models.ForeignKey(Empleado, on_delete=models.PROTECT,  related_name="coordinador")
  30.     op = models.PositiveIntegerField(blank=True, null=True)

AUTOCOMPLETE

Código Javascript:
Ver original
  1. $().ready(function(){
  2.  
  3.     $("#id_nombre_vendedor").autocomplete({
  4.         source:"/ajax/contains/empleado/",
  5.         minLength:minLength_ac
  6.  
  7.     });
  8.  
  9. });

Última edición por razpeitia; 23/02/2015 a las 17:11