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})