Necesito que me ayuden por favor con un error que me sale, he intentado poner los related_names
pero sigue saliendo el mismo error. (uso Django 1.6.5 y Python 2.7)
Error:
Mis modelos:
class Novedad(models.Model): persona = models.ForeignKey(Persona, related_name="persona") responsable = models.ForeignKey(Persona, related_name="responsable") municipio = models.ForeignKey(Municipio) area = models.ForeignKey(Area) # área de ocurrencia de la novedad cargo = models.ForeignKey(Cargo) # cargo ejercido el dia de la novedad sucursal = models.ForeignKey(Sucursal) fecha_diligenciamiento = models.DateTimeField(auto_now_add=True, blank=True) observaciones = models.TextField(blank=True, null=True) class Meta: abstract = Trueclass AusentismoBase(Novedad): fecha_inicio = models.DateField(verbose_name="Fecha Inicial") fecha_fin = models.DateField(verbose_name="Fecha Final") mes = models.IntegerField(validators=[no_negativo]) quincena = models.IntegerField(validators=[no_negativo]) hora_inicio = models.TimeField(verbose_name="Hora Inicial", blank=True, null=True) hora_fin = models.TimeField(verbose_name="Hora Final", blank=True, null=True) motivo = models.IntegerField(choices=MOTIVOS_AUSENTISMO, verbose_name="Tipo de Ausentismo") eps = models.ForeignKey(Eps) arl = models.ForeignKey(Arl) edad = models.IntegerField(validators=[no_negativo]) salario = models.IntegerField(validators=[no_negativo]) #jornada = models.IntegerField(choices=JORNADAS, verbose_name="Jornada") def __unicode__(self): return (u"Ausentismo %s: %s - %s)"%(self.persona, self.motivo, self.fecha_inicio)).strip() or "-"class Reintegro(Novedad): area_seleccionada = models.ForeignKey(Area, related_name="area_seleccionadaR", verbose_name="nueva área seleccionada") cargo_seleccionado = models.ForeignKey(Cargo, related_name="cargo_seleccionadoR", verbose_name="nuevo cargo seleccionado") fecha_ingreso = models.DateField() tipo_empleado = models.CharField(max_length=1, choices=TIPO_EMPLEADO)
Mi único formulario (por ahora):
class AusentismoBaseForm(forms.ModelForm): class Meta: model = AusentismoBase exclude = ('persona', 'responsable', 'area', 'cargo', 'sucursal', 'mes', 'quincena', 'eps', 'arl', 'edad', 'salario') widgets = {'municipio': Select2Widget(),'fecha_inicio' : MyDateWidget(),'fecha_fin' : MyDateWidget(),'hora_inicio': TimeWidget(usel10n=False, bootstrap_version=3),'hora_fin': TimeWidget(usel10n=False, bootstrap_version=3), #'soporte' : MyFileInput(),'observaciones': Textarea(attrs={'cols': 30, 'rows': 2}), }
Mi única vista (por ahora):
def crear_ausentismo(request, idPersona=None): persona = None hoy = datetime.now() form = AusentismoBaseForm() form2 = CedulaForm(request.POST) if(idPersona): persona = Persona.objects.get(id=idPersona) form = AusentismoBaseForm(request.POST) if form.is_valid(): print("dió clic") objeto = form.save(commit=False) objeto.persona = persona objeto.responsable = Persona.objects.get(usuario=request.user) objeto.area = persona.cargo.area objeto.cargo = persona.cargo objeto.sucursal = persona.sucursal objeto.mes = hoy.month if hoy.day >= 16: objeto.quincena = 2 else: objeto.quincena = 1 objeto.eps = persona.eps objeto.arl = persona.arl objeto.edad = edad(persona) objeto.salario = persona.salario objeto.save() form.save() return redirect('crear_ausentismo', persona.id) else: print("aún no da clic") form = AusentismoBaseForm() form2 = CedulaForm() else: if form2.is_valid(): persona = form2.cleaned_data['persona'] return redirect('crear_ausentismo', persona.id) else: try: form2 = CedulaForm({'persona': persona.id}) except Exception: form2 = CedulaForm() return render(request, 'ausentismo.html', {'persona': persona,'form': form,'form2': form2,'hoy': hoy, })