0

I'm trying to build a form to use it as a filter for my project search page, but the {{form}} shows nothing. Here is how everything is set up:

The model I'm trying to use from models.py

class Exemplar(models.Model):
    class Meta:
        verbose_name_plural = 'Exemplares'
    tipoDeExemplar = models.ForeignKey(TipoDeExemplar, on_delete=models.SET_NULL, blank=True, null=True, verbose_name="Tipo De Exemplar")
    numeroDeRegistro = models.CharField(max_length=255, verbose_name="Número Do Registro")
    especie = models.ForeignKey(Especie, on_delete=models.CASCADE, null=True)
    dataDoRegistro = models.DateField(blank=True, null=True, verbose_name="Data Do Registro")
    estadoDoExemplar = models.CharField(blank=True, null=True, max_length=255, verbose_name="Estado do Exemplar")
    tipoDeMaterial = models.CharField(blank=True, null=True, max_length=255, verbose_name="Tipo De Material")
    procedencia = models.CharField(blank=True, null=True, max_length=255, verbose_name="Procedência")
    remetente = models.CharField(blank=True, null=True, max_length=255, verbose_name="Remetente")
    armario = models.CharField(blank=True, null=True, max_length=255, verbose_name="Armário")
    gaveta = models.CharField(blank=True, null=True, max_length=255, verbose_name="Gaveta")
    complemento = models.CharField(blank=True, null=True, max_length=255, verbose_name="Complemento")
    amostraDeOrigem = models.CharFie
    fotoDoExemplar = models.ImageField(null=True, blank=True, upload_to='imagens/', verbose_name="Foto Do Exemplar")
    slug = models.SlugField(max_length=255, unique=True)

    def __str__(self):
        return self.numeroDeRegistro

My forms.py file (very short)

from django.forms import ModelForm
from acervo.models import Exemplar

class ExemplarForm(ModelForm):
    class Meta:
        model = Exemplar
        fields = '__all__'

My view on views.py (seems to be working since I can open the page)

class BuscaView(ListView):
    model = Exemplar
    template_name = 'busca.html'
    form_class = ExemplarForm

Piece of the HTML template where I try to use the Django ModelForm

<form action="" method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="Create" />
</form>

From what I've researched in other post and on YouTube tutorials, everything seems to be ok, but only the button shows up. What could be the problem?

1
  • ListView does not handles form by default but you can pass the form by overriding get_context_data Commented Oct 6, 2023 at 6:16

1 Answer 1

0

I think at first you need write {% block content %} in the line 1 or 2 of your code and in the end you should close it with {% endblock %} in the down of your code

And you should write your url view in the action in tag; <form action="{% url 'app_name:url_name' %}">

url_name:

`urlpatterns = [
    path('url', your_view, name='url_name'),
]`
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.