从一个表单插入多个模型

时间:2014-10-16 19:49:45

标签: django django-models django-forms

我有5个型号,这些型号有相似的结构。前三个字段是相同的。 例如:

class DetalleCargaArchivo(models.Model):
    id_proveedor = models.ForeignKey(Proveedor,db_column='id_proveedor', primary_key=True, verbose_name='Proveedor')
    anio = models.IntegerField(blank=True, null=True)
    mes = models.IntegerField(blank=True, null=True)
    f_carga = models.DateField(verbose_name='Fecha de carga')
    usuario = models.CharField(max_length=15, blank=True)
    registros = models.FloatField(verbose_name='Cant. de Registros')
    num_codigos = models.IntegerField(verbose_name='Cant. codigos')
    lista_codigos = models.CharField(max_length=2500,verbose_name='Lista de Codigos')
    class Meta:
        managed = False
        db_table = 'mpc_detalle_carga_archivo'

我想知道是否可以从一个表单中插入所有表。 我只需要在所有表中保存3个第一个字段(id_proveedor,anio,mes)。 这是一张遗留表,并没有任何关系。

更新

所有模型的视图都是这样的,差别很小

@login_required(login_url='/login/')
def CargaView(request):
    idp = request.GET.get('i')
    anio = request.GET.get('a')
    mes = request.GET.get('m')
    if request.method == 'POST':
       r = DetalleCargaArchivo.objects.get(id_proveedor=idp,anio=anio,mes=mes)
       form = CargaForm(request.POST, instance=r)
       if form.is_valid():
          form.save()
          return HttpResponseRedirect('/monitor/')
    else:
       r = DetalleCargaArchivo.objects.get(id_proveedor=idp,anio=anio,mes=mes)
       r.usuario = request.user
       form = CargaForm(instance=r)

    return render_to_response("carga.html",
                               locals(),
                               context_instance=RequestContext(request))

我在想创建一个只有三个字段的通用表单,但我不知道如何保存在多个模型中

请帮助

提前致谢

0 个答案:

没有答案