Advertisement
unixtall

Untitled

May 20th, 2019
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.87 KB | None | 0 0
  1. ### Template de crear formulario ###
  2.  
  3. {%  extends 'base_generic.html' %}
  4. {% load bootstrap4 %}
  5.  
  6. {%  block content %}
  7.     <div class="row">
  8.     </div>
  9.     <div class="row">
  10.         <h2>Formulario Seguridad</h2>
  11.     </div>
  12.     <div class="row">
  13.           <h2><span class="label label-default">{{ preguntas.PRG_TIP}}</span></h2>
  14.     </div>
  15.     <div class="row">
  16.         <form action="." method="post">
  17.             {% csrf_token %}
  18.             {{ resp_form.management_form }}
  19.                 {% for resp in resp_form %}
  20.                     <b>{{ resp.RESP_PRG.value}} </b>
  21.                     {% bootstrap_field resp.RESP_PRG show_label=False  %}
  22.                     {% bootstrap_field resp.RESP_FORM show_label=False  %}
  23.                     {% bootstrap_field resp.RESP_RESUL show_label=False  %}
  24.                 {% endfor %}
  25.             <input class="btn btn-success" type="submit" value="Guardar"/>
  26.         </form>
  27.     </div>
  28. {% endblock %}
  29.  
  30.  
  31. ### View.py ###
  32.  
  33. class FormSeguridadView(CreateView):
  34.     form_class = RespFormSeguridad
  35.     RespFormset = formset_factory(RespFormSeguridad, extra=0)
  36.     template_name = 'formularios/formSeguridad.html'
  37.  
  38.     def get_context_data(self, **kwargs):
  39.         context = super(FormSeguridadView, self).get_context_data(**kwargs)
  40.         context['preguntas'] = PRG.objects.all()
  41.         context['resp_form'] = self.RespFormset(initial=[
  42.             {'RESP_FORM': 1, 'RESP_PRG': 1},
  43.             {'RESP_FORM': 1, 'RESP_PRG': 2},
  44.             {'RESP_FORM': 1, 'RESP_PRG': 3},
  45.             {'RESP_FORM': 1, 'RESP_PRG': 4},
  46.             {'RESP_FORM': 1, 'RESP_PRG': 5},
  47.             {'RESP_FORM': 1, 'RESP_PRG': 6},
  48.             {'RESP_FORM': 1, 'RESP_PRG': 7},
  49.             {'RESP_FORM': 1, 'RESP_PRG': 8},
  50.         ])
  51.         return context
  52.  
  53.     def post(self, request, *args, **kwargs):
  54.         resp_formset = self.RespFormset(self.request.POST)
  55.         print(resp_formset.cleaned_data)
  56.         if resp_formset.is_valid():
  57.  
  58.             for respuestas in resp_formset:
  59.                 respuestas.save()
  60.  
  61.             return HttpResponseRedirect(reverse("index"))
  62.  
  63. ### Forms.py ###
  64.  
  65. class RespFormSeguridad(forms.ModelForm):
  66.  
  67.     class Meta:
  68.         model = RESP
  69.         fields = '__all__'
  70.  
  71.  
  72.     def __init__(self,*args, **kwargs):
  73.        super(RespFormSeguridad,self).__init__(*args, **kwargs)
  74.        self.fields['RESP_FORM'].widget = forms.HiddenInput()
  75.  
  76.  
  77. ### Models.py ###
  78.  
  79. ''' Tabla RESP '''
  80. class RESP(models.Model):
  81.     RESP_ID = models.AutoField(primary_key=True)
  82.  
  83.     tipos_resp = (
  84.         ('0', 'Sí Cumple'),
  85.         ('1', 'No Cumple'),
  86.         ('2', 'No Aplica')
  87.     )
  88.     RESP_RESUL = models.CharField(max_length=1, choices=tipos_resp)
  89.     RESP_FORM = models.ForeignKey("FORM", on_delete=models.SET_NULL, null=True, blank=True ,db_column="RESP_FORM")
  90.     RESP_PRG = models.ForeignKey("PRG", on_delete=models.SET_NULL, null=True, blank=True, db_column="RESP_PRG")
  91.  
  92.     class Meta:
  93.         db_table = "RESP"
  94.  
  95.     def __str__(self):
  96.         return self.RESP_RESUL
  97.  
  98.     def get_absolute_url(self):
  99.         return reverse("index")
  100.  
  101.  
  102. ''' Tabla PRG '''
  103. class PRG(models.Model):
  104.     PRG_ID = models.AutoField(primary_key=True)
  105.     PRG_NOM = models.CharField(max_length=250)
  106.     tipo_pregunta = (
  107.         ('1', 'Documentación en Obra'),
  108.         ('2', 'Emergencias'),
  109.         ('3', 'Equipos de protección individual'),
  110.         ('4', 'Equipos y Herramientas'),
  111.         ('5', 'Cinco Reglas de Oro'),
  112.         ('6', 'Condiciones de trabajo y señalización y protección'),
  113.         ('7', 'Vehículos y maquinarias')
  114.     )
  115.     PRG_TIP = models.CharField(max_length=1, choices=tipo_pregunta)
  116.     PRG_ORD = models.CharField(max_length=4)
  117.  
  118.     class Meta:
  119.         db_table = "PRG"
  120.  
  121.     def __str__(self):
  122.         return self.PRG_ORD+ " " + self.PRG_NOM
  123.  
  124.     def get_absolute_url(self):
  125.         return reverse("index")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement