Help with Django Form

0

I currently have this form to enter patients:

class PacienteForm(forms.ModelForm):
  class Meta:
    model = Pacientes
    fields = '__all__'
    validar= forms.BooleanField(required=False)
    widgets = {
        'nombres': forms.TextInput(attrs={'class': 'form-control'}),
        'examen_texto': forms.TextInput(attrs={'class': 'form-control'}),
        'apellidos': forms.TextInput(attrs={'class': 'form-control'}),
        'numero_identificacion': forms.TextInput(attrs={'class': 'form-control'}),
        'fecha_nacimiento': forms.DateInput(attrs={'class': 'datepicker'}),
        'celular': forms.TextInput(attrs={'class': 'form-control'}),
        'email': forms.TextInput(attrs={'class': 'form-control'}),
        'direccion': forms.TextInput(attrs={'class': 'form-control'}),
        'genero': forms.Select(choices=Pacientes.PACIENTE_SEXO, attrs={"class": "form-control input-sm"}),
    }

I want to enter an input text to search through a Form, which I have:

class BuscarForm(forms.Form):
    q = forms.CharField(max_length=100,required=False,widget=forms.TextInput(attrs={"class":"form-control input-sm"}))

In the html I have the following:

<div class="row">
<div class="col-sm-12">
        <div class="dataTables_filter">
                <form class="form-inline" action="{% url 'pacientes:busqueda_pacientes' %}" method="GET">
                        <div class="form-group">
                                {{form.q}}{{form.q.errors}}
                        </div>
                        <div class="form-group">
                                <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button>
                        </div>
                </form>
        </div>
</div>

But the input does not appear in the HTML.

This is my model: '

   class Pacientes(models.Model):
      nombres = models.CharField(max_length=50)
      apellidos = models.CharField(max_length=50)
      numero_identificacion = models.CharField(max_length=20)
      fecha_nacimiento = models.DateField(blank=False,)
      celular = models.CharField(max_length=20)
      email = models.CharField(max_length=30)
      direccion = models.CharField(max_length=100)
      genero = models.CharField(max_length=1, choices=PACIENTE_SEXO)
      validar = models.BooleanField(default=False)

View

def busqueda_pacientes(request):

   pacientes_list = None
   try:
       form = BuscarForm()
       pacientes = Pacientes.objects.all()#('apellidos', 'nombres','numero_identificacion')
       if request.method == 'GET':
           if 'q' in request.GET:
               form = BuscarForm(request.GET)
               q = request.GET['q'].split()
               for param in q:
                   pacientes = pacientes.filter(
                    Q(apellidos__icontains=param) | Q(numero_identificacion__icontains=param) | Q(
                        nombres__icontains=param)
                )

       paginator = Paginator(pacientes, 25)
       page = request.GET.get('page')
       try:
           pacientes_list = paginator.page(page)
       except PageNotAnInteger:
           pacientes_list = paginator.page(1)
       except EmptyPage:
           pacientes_list = paginator.page(paginator.num_pages)
   except:
    pass
   return render(request, 'pacientes/templates/consultar_pacientes.html',
              {"page_title": u"Consultar Pacientes", "pacientes": pacientes_list, "form": form})
    
asked by Roberto Feijoo 22.08.2018 в 19:07
source

0 answers