繁体   English   中英

Django 不呈现来自 model 的脆皮表单字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM