[英]Django not rendering Crispy Form Fields from model
嗨,我是使用 django 的初学者。 在我的项目中,我正在尝试构建一个新的项目表格来填写信息以在线存储。 我使用 bootstrap4 作为 django_crispy_forms 中的默认模板包。 我一直在尝试使用脆标签/过滤器呈现表单。 我有另一种表格,我已经使用并成功地从表格中呈现了字段。 但是这次我需要从 model 渲染表单。 按钮和标题呈现在模板上,但无论我从其他模型表单示例中尝试什么,我似乎都无法让我的字段像应有的那样呈现到模板。 任何帮助将不胜感激。
我的相关代码如下: 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',
]
视图.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 %}
设置.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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.