Dav*_*ave 24 django django-crispy-forms bootstrap-4
TemplateDoesNotExist
将 Crispy Forms 与 Django 结合使用,只有在使用 Crispy Forms 的任何功能时才会出现错误。
由于我是 Crispy Forms 的新手(似乎普遍建议使用它来快速使表单看起来更好),因此我按照https://django-crispy-forms.readthedocs.io/en/latest/install.html中的说明进行操作据我所知,安装是正确的(使用安装pip
并更改settings.py
)。.venv
我在 Windows 计算机上的虚拟环境(下面提到的文件夹)中运行它。
我什至专门创建了一个新项目来研究这个问题,内容绝对很少,但同样的问题仍然存在。该项目称为“stuff”,其中的单个应用程序称为“other”。
设置.py
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'crispy_forms',
'other',
'bootstrap4'
]
CRISPY_TEMPLATE_PACK = 'bootstrap4'
...
Run Code Online (Sandbox Code Playgroud)
模型.py
from django.db import models
class Mine(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
Run Code Online (Sandbox Code Playgroud)
表格.py
from django import forms
from .models import Mine
class MineForm(forms.ModelForm):
class Meta:
model = Mine
fields = ('name','email')
Run Code Online (Sandbox Code Playgroud)
视图.py
from django.shortcuts import render
from .forms import *
def idx(request):
tform = MineForm()
return render(request,'test.html',{'aform': tform})
Run Code Online (Sandbox Code Playgroud)
测试.html
{% load bootstrap4 %}
{% load crispy_forms_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TestThing</title>
</head>
<body>
<form action="/">
{% csrf_token %}
{{ aform|crispy }}
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
点冻结的结果
asgiref==3.6.0
beautifulsoup4==4.11.2
Django==4.1.7
django-bootstrap4==22.3
django-crispy-forms==2.0
soupsieve==2.4
sqlparse==0.4.3
tzdata==2022.7
Run Code Online (Sandbox Code Playgroud)
调试页面报错
TemplateDoesNotExist at /
bootstrap4/uni_form.html
Run Code Online (Sandbox Code Playgroud)
模板加载器事后分析
Template-loader postmortem
Django tried loading these templates, in this order:
Using engine django:
django.template.loaders.app_directories.Loader: C:\ProjectDir\.venv\lib\site-packages\django\contrib\admin\templates\bootstrap4\uni_form.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\ProjectDir\.venv\lib\site-packages\django\contrib\auth\templates\bootstrap4\uni_form.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\ProjectDir\other\templates\bootstrap4\uni_form.html (Source does not exist)
django.template.loaders.app_directories.Loader: C:\ProjectDir\.venv\lib\site-packages\bootstrap4\templates\bootstrap4\uni_form.html (Source does not exist)
Run Code Online (Sandbox Code Playgroud)
在我看来,Crispy 看不到应该安装的模板。或者也许我还应该下载或创建其他东西?
我想在处理更紧迫的问题之前快速整理 Django 项目中的表单,但几个小时后我仍然无法让 Crispy Forms 完全运行(如果用其他方式对此进行排序会更快)。很明显我错过了一些东西,但是什么呢?
我尝试过的其他奇怪而美妙的事情
并非所有这些都符合逻辑,但是嘿!
CRISPY_TEMPLATE_PACK
——这会导致错误,提示我需要使用bootstrap3
,, bootstrap4
or uni_form
。尽管重复这个实验仍然会出现上面报告的错误(带有拼写错误)django-bootstrap4
模块并从 CDN 加载(没有区别){% crispy aform %}
- 相同的结果小智 78
从 django-crispy-forms 2.0 开始,模板包现在位于单独的包中。
您将需要pip install crispy-bootstrap4
并将其添加crispy_bootstrap4
到您的列表中INSTALLED_APPS
。
hyb*_*ure 16
如果你需要使用bootstrap4
在主应用程序的 settings.py 内部添加
INSTALLED_APPS = [ ... 'crispy_forms', 'crispy_bootstrap4', ... ]
和CRISPY_TEMPLATE_PACK = 'bootstrap4'
在 your_html.html 文件中添加
{% load crispy_forms_tags %}
,您可以根据需要使用 cripy_forms
归档时间: |
|
查看次数: |
24602 次 |
最近记录: |