Django 简单 ModelForm 未显示在页面上(我正在使用基于类的视图),可能是什么问题?

问题描述 投票:0回答:1

我正在尝试构建一个表单以将其用作我的项目搜索页面的过滤器,但 {{form}} 没有显示任何内容。一切设置方式如下:

我尝试使用 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

我的forms.py文件(很短)

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

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

我对views.py的看法(似乎有效,因为我可以打开页面)

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

我尝试使用 Django ModelForm 的 HTML 模板部分

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

根据我在其他帖子和 YouTube 教程中研究的内容,一切似乎都正常,但仅显示按钮。 可能是什么问题?

django django-class-based-views modelform
1个回答
0
投票

我认为首先你需要在代码的第1行或第2行中写入

{% block content %}
,最后你应该在代码的下方用
{% endblock %}
关闭它

并且您应该将您的 url 视图写入标签中的操作中;

<form action="{% url 'app_name:url_name' %}">

网址名称:

`urlpatterns = [
    path('url', your_view, name='url_name'),
]`
© www.soinside.com 2019 - 2024. All rights reserved.