【问题标题】:Django not rendering Crispy Form Fields from modelDjango 没有从模型中渲染 Crispy Form Fields
【发布时间】: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',
    
]

Screenshot of button with un-rendered form

【问题讨论】:

  • 您好,您将帮助自己,以及任何试图通过最小化重现案例来回答这个问题的人 - 也就是说,在重现问题的同时尽可能多地删除代码。试着看看你能带走多少,仍然看到这种行为。
  • 嗨 Danny,感谢您的简单建议,这很有意义,并且更易于阅读和调试。在让其他模块在我的应用程序中工作方面,我有点超前了。我已将代码最小化并在上面进行了编辑,但不幸的是我仍然遇到同样的问题。
  • 尝试二进制切分字段列表 - 看看是否有任何一个是原因。如果只用1个字段就可以重现,那肯定会缩小问题范围。
  • 不幸的是,只有一个字段仍然没有运气......
  • 设置中已安装应用程序中的表格是否酥脆?

标签: python django django-crispy-forms django-bootstrap4


【解决方案1】:

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

CRISPY_TEMPLATE_PACK = 'bootstrap4'

【讨论】:

    猜你喜欢
    • 2017-01-24
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 2021-12-30
    • 2021-09-24
    • 2012-06-29
    相关资源
    最近更新 更多