Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Django 4.0 Form中template_name使用「终于解决」,希望能够帮助你!!!。
今天主要抽空验证Django 4.0中一个新feature,Form中template_name的使用。
本文分3部分:
第1部分记录一下使用Django 4.0创建一个hello world项目的步骤;
第2部分添加一个form并展示;
第3部分验证一下template_name功能。
第一步 建立环境(使用Django4.0创建一个hello world项目)
1. Python 3.8.9 中创建一个虚拟环境:
python -mvenv Django40
2. 下载安装Django 4.0.2:
pip install django
3. 创建一个新的project:
django-admin startproject django40
4. 进入django40文件夹后创建home app:
python manage.py startapp home
5. Setting中加入home
INSTALLED_APPS = [
'home.apps.HomeConfig',
…
]
6. Django 4.0的url中定义好home的path
path('home',include('home.urls')),
7. Home中的url.py
from django.urls import path
from . import views
app_name="home"
urlpatterns = [
path('', views.index, name='index'),
]
8. Home app中的view
def index(request):
context = {}
return render(request,'home/index.html', context)
9. Template,在\home\templates\home文件夹中添加index.html,内容:
<p>hello world</p>
在控制台中python manage.py runserver
在浏览器中打开http://127.0.0.1:8000/home,看到hello world。准备工作完成了。
第二步 加入MyForm
1. 在home的文件夹内添加forms.py
from django import forms
class MyForm(forms.Form):
message = forms.CharField(label='Message',max_length=100)
name = forms.CharField(label='Name',max_length=50)
2. 在views.py中
def index(request):
form_obj = MyForm()
context = {
'form':form_obj,
}
return render(request, 'home/index.html',context)
3. 在home的template文件夹index.html中
<form action="" method="post">
{{form}}
<inputtype="submit" value="OK">
</form>
第三步 使用验证template_name
1. 在home的template文件夹中加入form_custom.html文件,内容为:
{% for field in form %}
<div>
{{ field.errors }}
{{ field.label_tag }} {{ field }}
</div>
{% endfor %}
2. 打开home的forms.py,加入template_name
from django import forms
class MyForm(forms.Form):
template_name ="home/form_custom.html"
message = forms.CharField(label='Message',max_length=100)
name = forms.CharField(label='Name', max_length=50)
浏览器中再次输入http://127.0.0.1:8000/home,从效果上可以看出来,我们已经使用自定义的模板文件了
3. 如果form不使用template_name属性,像这样在index模板中直接引用自定义的模板文件也可以。
<form action="" method="post">
{%include "home/form_custom.html" %}
<input type="submit" value="OK">
</form>
(完,更多文章可关注微信公众号:Django编程)