【发布时间】:2020-08-27 23:39:28
【问题描述】:
您好,我是使用 django 的初学者。在我的项目中,我正在尝试构建一个新的项目表格来填写信息以在线存储。我使用 bootstrap4 作为 django_crispy_forms 中的默认模板包。我一直在尝试使用脆标签/过滤器呈现表单。我有另一种表格,我已经使用并成功地从表格中呈现字段。但是这次我需要从模型中渲染表单。按钮和标题呈现在模板上,但无论我从其他模型表单示例中尝试什么,我似乎都无法让我的字段像应有的那样呈现到模板。任何帮助将不胜感激。
我的相关代码如下: 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 %}
设置.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'projects’,
'crispy_forms',
]
【问题讨论】:
-
您好,您将帮助自己,以及任何试图通过最小化重现案例来回答这个问题的人 - 也就是说,在重现问题的同时尽可能多地删除代码。试着看看你能带走多少,仍然看到这种行为。
-
嗨 Danny,感谢您的简单建议,这很有意义,并且更易于阅读和调试。在让其他模块在我的应用程序中工作方面,我有点超前了。我已将代码最小化并在上面进行了编辑,但不幸的是我仍然遇到同样的问题。
-
尝试二进制切分字段列表 - 看看是否有任何一个是原因。如果只用1个字段就可以重现,那肯定会缩小问题范围。
-
不幸的是,只有一个字段仍然没有运气......
-
设置中已安装应用程序中的表格是否酥脆?
标签: python django django-crispy-forms django-bootstrap4