Buenos días muchachos, una vez más recurriendo a sus conocimientos y su loable ayuda; resulta que
Tengo mi vista:
Código Python:
Ver original@login_required
def agregar_tarea(request, id_actividad):
tarea = ProgramacionActividades.objects.filter(actividad_id = id_actividad)
# for t in tarea:
# temp = t
# temp =temp
total = tarea.count()
total = total + 1
nueva_tarea = 'CT-'+str(id_actividad) +'-'+ str(total)
print nueva_tarea
if request.method == 'POST':
formulario = ProgramacionaddForm(request.POST)
if formulario.is_valid():
a = formulario.save(commit=False)
a.unidad_trabajo = nueva_tarea
a.save()
msj = 'La tarea se guardó Correctamente.'
messages.success(request, msj)
return HttpResponseRedirect('/catalogos/detalle_programacion/%s' % id_actividad)
else:
msj = 'Error'
messages.error(request, msj)
return HttpResponseRedirect('/catalogos/agregar_tarea/%s' % id_actividad)
else:
formulario = ProgramacionaddForm()
contexto = {'formulario': formulario, 'total': total, 'nuevatarea': nueva_tarea}
return render_to_response('Catalogos/programacion_agregar.html', contexto, context_instance=RequestContext(request))
Tengo mi modelo:
Código Python:
Ver originalclass ProgramacionActividades(models.Model):
actividad = models.ForeignKey(Actividades)
unidad_trabajo = models.CharField(max_length=250)
hora_inicio =models.TimeField()
hora_fin = models.TimeField()
fecha =models.DateField()
capacidad = models.IntegerField()
total_horas = models.IntegerField()
estatus = models.ForeignKey(Estatus)
cid = models.IntegerField(default=1)
activo = models.IntegerField(default=1)
fecha_registro=models.DateField(auto_now_add=True)
usuario = models.ForeignKey(User)
class Meta:
verbose_name ="ProgramacionActividades"
verbose_name_plural ="ProgramacionActividades"
db_table="programacion_actividades"
def __unicode__(self):
return "%s - %s - %s -%s" %(self.actividad.centro_asistencial.nombre,self.actividad.proyecto.nombre,self.hora_inicio,self.hora_fin)
tengo mi form:
Código Python:
Ver originalclass ProgramacionaddForm(forms.ModelForm):
class Meta:
model = ProgramacionActividades
exclude =['cid','activo','fecha_registro','usuario','estatus','actividad']
y tengo mi template:
Código HTML:
Ver original{% extends "base.html" %} <!-- Esta parte del codigo invoca al archivo base.html donde se encuentran los estilos y scripts -->
{% block camino %} <!-- Bloque para el camino de hormigas -->
<li class=""><a href="dashboard.html"><i class="icon-home"></i>ayuda
</a></li>
{% endblock camino %}
{% block contenedor %} <!-- Bloque para el contenido -->
{% if messages %}
{% for message in messages %}
<div{% if message.tags %} class="dgtic-message {{ message.tags }}"{% endif %}>{{ message }}
</div> {% endfor %}
{% endif %}
<div class="dgtic-panel"> <div class="dgtic-panel-header"> <span class="dgtic-panel-title"> <i class="icol-add"></i> Agregar Nueva Tarea
<div class="dgtic-panel-content dgtic-form-container"> <form id="registro_tipo_actividad" class="dgtic-form" method="POST">{% csrf_token %}
{% csrf_token %}
<div id="dgtic-ex-val1-error" class="dgtic-message error" style="display:none;"></div> <div class="dgtic-form-inline"> <!--<div class="dgtic-form-row">
<label class="dgtic-form-label">Centro Asistencial: </label>
<div class="dgtic-form-item large">
<font color="blue">{{t.actividad}}</font>
</div>
</div>
<div class="dgtic-form-row">
<label class="dgtic-form-label">Unidad de Trabajo a<span class="required">*</span></label>
<div class="dgtic-form-item large">
{{nuevatarea}}
</div>
</div>-->
<div class="dgtic-form-row"> <div class="dgtic-form-item large"> {{formulario.hora_inicio}}
{% for error in formulario.tipo_actividad.errors %}
<span class="errorMessage">{{error}}
</span> {% endfor %}
<span id="error" style="color:red;"></span> <span id="error2" style="color:red;"></span> <div class="dgtic-form-row"> <div class="dgtic-form-item large"> {{formulario.hora_fin}}
{% for error in formulario.descripcion.errors %}
<span class="errorMessage">{{error}}
</span> {% endfor %}
<div class="dgtic-form-row"> <div class="dgtic-form-item large"> <font color="blue">{{formulario.fecha}}</font>
<div class="dgtic-form-row"> <div class="dgtic-form-item large"> {{formulario.capacidad}}
{% for error in formulario.horas_grupo.errors %}
<span class="errorMessage">{{error}}
</span> {% endfor %}
<div class="dgtic-form-row"> <div class="dgtic-form-item large"> {{formulario.total_horas}}
{% for error in formulario.capacidad.errors %}
<span class="errorMessage">{{error}}
</span> {% endfor %}
<input type="button"value="Cancelar" onclick="history.go(-1)" class="btn btn-danger"> <input type="submit" value="Guardar" class="btn btn-success">
{% endblock contenedor %}
{% block jquery %}
<script type="text/javascript"> $(document).ready(function(){
$("#id_hora_inicio").prop("type", "time");
$("#id_hora_fin").prop("type", "time");
$("#id_total_horas").attr('readonly','readonly');
var hora_i_a ="{{t.hora_inicio}}"
var hora_f_a ="{{t.hora_fin}}"
var total_h_a ="{{t.total_horas}}"
$("#id_hora_inicio,#id_hora_fin").blur(function(){
var fin = $("#id_hora_fin").val();
var inicio = $('#id_hora_inicio').val();
var error = 'la hora final no debe ser menor que la de inicio';
if (fin != '' && inicio != ''){
if (fin < inicio){
mensaje ="La Hora de Inicio no puede ser Mayor a la Final"
$("#id_hora_fin").val(hora_f_a);
$('#id_total_horas').val(total_h_a);
$("#error").html(mensaje)
}else{
$('#error').html('');
var total = (parseInt(fin) - parseInt(inicio));
$('#id_total_horas').val(total);
}
if((inicio<hora_i_a) || (inicio>hora_f_a))
{
//$("#id_hora_inicio").val(hora_i_a)
}
if ((fin > hora_f_a)|| (fin<hora_i_a))
{
//$("#id_hora_fin").val(hora_f_a)
}
}
});
});
$('#id_fecha').datepicker({
dateFormat: "yy-mm-dd", //"dd/mm/yy",
changeMonth: true,
changeYear: true,
dayNamesMin: ["D","L","M","M","J","V","S"],
monthNamesShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sept", "Oct", "Nov", "Dic"],
yearRange: '1900:2020'
});
{% endblock %}
Según mi lógica todo está bien, peeero simplemente no guarda.
En el archivo forms.py excluyo como indico ahi algunos campos para que no los tome en cuenta al guardar.
Le envío a.unidad_trabajo = nueva_tarea que es u registro que quiero que se guarde junto con los que se capturan en el formulario, pero insisto y repito, NO guarda.
No se que pueda ser.
Como siempre agradezco su apoyo y soporte.
Saludos