Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.98 KB | None | 0 0
  1. from django import forms
  2. from .models import TblInfoCatalogoValores
  3. from .choices import tupla_lista, tupla_lista_2
  4.  
  5. class pruebaForm(forms.Form):
  6. multiple_choice = forms.ChoiceField(
  7. label=u"Select multiple",
  8. choices=tupla_lista,
  9. widget=forms.widgets.Select,
  10. initial=(c[0] for c in tupla_lista)
  11. )
  12.  
  13. multiple_choice_2 = forms.ChoiceField(
  14. label=u"Select multiple 2",
  15. choices=tupla_lista_2,
  16. widget=forms.widgets.Select,
  17. initial=(d[0] for d in tupla_lista_2)
  18. )
  19.  
  20. from .models import TblInfoCatalogoValores
  21. #-----------------------Primer Select-----------------------
  22. tupla = []
  23. query_1 = TblInfoCatalogoValores.objects.filter(id_catalogo = 22).values_list("valor", "des_valor")
  24. for i in query_1:
  25. tupla.append(i)
  26. tupla_lista = tuple(tupla)
  27. #-----------------------Segundo Select-----------------------
  28. tupla_2 = []
  29. query_2 = TblInfoCatalogoValores.objects.filter(id_catalogo = 23).values_list("valor", "des_valor")
  30. for e in query_2:
  31. tupla_2.append(e)
  32.  
  33. tupla_lista_2 = tuple(tupla_2)
  34.  
  35. class TblInfoCatalogoValores(models.Model):
  36. id_valor = models.AutoField(db_column='ID_VALOR', primary_key=True)
  37. id_catalogo = models.ForeignKey(TblInfoCatalogoId, models.DO_NOTHING, db_column='ID_CATALOGO')
  38. valor = models.CharField(db_column='VALOR', max_length=10)
  39. des_valor = models.CharField(db_column='DES_VALOR', max_length=150, blank=True, null=True)
  40. val_1 = models.CharField(db_column='VAL_1', max_length=20, blank=True, null=True)
  41. val_2 = models.CharField(db_column='VAL_2', max_length=20, blank=True, null=True)
  42. val_3 = models.CharField(db_column='VAL_3', max_length=20, blank=True, null=True)
  43. val_4 = models.CharField(db_column='VAL_4', max_length=20, blank=True, null=True)
  44. val_5 = models.CharField(db_column='VAL_5', max_length=20, blank=True, null=True)
  45. val_6 = models.CharField(db_column='VAL_6', max_length=20, blank=True, null=True)
  46. val_7 = models.CharField(db_column='VAL_7', max_length=20, blank=True, null=True)
  47. orden = models.IntegerField(db_column='ORDEN', blank=True, null=True)
  48.  
  49. class Meta:
  50. managed = False
  51. db_table = 'TBL_INFO_CATALOGO_VALORES'
  52.  
  53. from .forms import pruebaForm
  54.  
  55. def pruebaViewForm(request):
  56. formulario = pruebaForm()
  57.  
  58. if request.method == 'POST':
  59. formulario = pruebaForm(request.POST)
  60. if formulario.is_valid():
  61. url = reverse('inicio')
  62. return HttpResponseRedirect(url)
  63. return render(request, 'pruebaForm.html',
  64. {'formulario_prueba': formulario}
  65. )
  66.  
  67. from django.http import JsonResponse
  68. from .models import TblInfoCatalogoValores
  69. from .choices import tupla_lista, tupla_lista_2
  70.  
  71. def get_sub_objetivo(request):
  72. objetivo_id = request.GET.get("objetivo_id")
  73. sub_objetivos = tupla_lista_2
  74. options = '<option value = "" disabled>*********</option>'
  75.  
  76. for sub_objetivo in sub_objetivos:
  77. options += '<option value = "%s">%s</option>' % (
  78. sub_objetivo.val_1,
  79. sub_objetivo.valor
  80. )
  81.  
  82. response = {}
  83. response['sub_objetivos'] = options
  84. return JsonResponse(response)
  85.  
  86. url(r'^ajax/get_sub_objetivo/$', get_sub_objetivo, name='get_sub_objetivo')
  87.  
  88. <h1>Formulario de prueba</h1>
  89. <form method="POST">
  90. {% csrf_token %}
  91. <div>
  92. {{ formulario_prueba.multiple_choice.label_tag }}
  93. {{ formulario_prueba.multiple_choice}}
  94. </div>
  95. <div>
  96. {{ formulario_prueba.multiple_choice_2.label_tag }}
  97. {{ formulario_prueba.multiple_choice_2}}
  98. </div>
  99. <input type="submit" name="Enviar">
  100. </form>
  101.  
  102. <script type="text/javascript">
  103. //Le doy la función de onchange al select de sub-objetivos.
  104. $(document).ready(function(){
  105. $("#id_multiple_choice").on("change", getSubObjetivos);
  106. });
  107. function getSubObjetivos(){
  108. var id_select_1 = $("#id_multiple_choice").val();
  109.  
  110. if (id_select_1) { alert(id_select_1)} //esto es una prueba
  111. if (id_select_1) {
  112. $("#id_multiple_choice_2").html("");
  113. alert("Entro!!!!!!!!"); //Esto es una prueba
  114.  
  115. var request = $.ajax(
  116. {
  117. type: "GET",
  118. url: "{% url 'get_sub_objetivo' %}",
  119. data: {
  120. "objetivo_id": id_select_1
  121. },
  122. success: function (response) {
  123. $("#id_multiple_choice_2").html(response.sub_objetivos);
  124. }
  125. }
  126. );
  127.  
  128. request.done(function(response){
  129. alert("Regreso"); //Esto es una prueba
  130. $("#id_multiple_choice").html(response.sub_objetivos);
  131. $("#id_multiple_choice_2").trigger("change");
  132. });
  133. }
  134. else {
  135. alert("Error"); //esto es una prueba
  136. $("#id_multiple_choice_2").html("<option value='' selected='selected'>-------</option>");
  137. $("#id_multiple_choice_2").trigger("change");
  138. }
  139. }
  140. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement