Django 不会从模型中渲染 Crispy Form Fields



嗨,我是使用django的初学者。在我的项目中,我正在尝试构建一个新的项目表单来填写信息以在线存储。我在 django_crispy_forms 中使用 bootstrap4 作为默认模板包。我一直在尝试使用脆皮标签/过滤器呈现表单。我有另一种我使用过的表单,并且成功地从表单中呈现字段。但是这次我需要从模型渲染表单。按钮和标题在模板上呈现,但无论我从其他模型表单示例中尝试什么,我似乎都无法让我的字段像它应该的那样呈现到模板中。任何帮助将不胜感激。

我的相关代码如下:models.py

from django.db import models
# Create your models here.
class Project(models.Model):
project_address = models.CharField(max_length=200, null=True)

forms.py

from django import forms
from .models import Project
class projectForm(forms.ModelForm):
class Meta:
model = Project
fields = [
'project_id',
]

views.py

from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect #added from enquiry views
from django.shortcuts import render
from django.conf import settings #added from enquiry views
from .models import Project
from .forms import projectForm
def projectinfo(request):
form = projectForm(request.POST or None)
context = {}
template = 'projectinfo.html'
return render(request,template,context)

.html

{% load crispy_forms_tags %}
{% block content %}
<form action="{% url 'projectinfo' %}" method="POST">{% csrf_token %}
{{ form|crispy }}               
<input type="submit" value="Create New Project" class="btn btn-default" role="button" style="background-color: #007bff; color: #ffffff;"/>
</form>
{% endblock %}

Settings.py

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

'projects’,
'crispy_forms',

]

具有未呈现表单的按钮的屏幕截图

我能够通过在 settings.py 中添加以下模板信息来修复它:

CRISPY_TEMPLATE_PACK = 'bootstrap4'

您需要在上下文中包含表单:

def projectinfo(request):
form = projectForm(request.POST or None)
context = {
'form': form
}
template = 'projectinfo.html'
return render(request,template,context)

最新更新