Django——form组件之循环生成标签

from django.contrib import admin
from django.urls import path
from app01.views import index

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/',index)
]

  

from django.shortcuts import render,HttpResponse
from django import forms
from django.core.exceptions import ValidationError     #校验错误

class UserInfo(forms.Form):

    username = forms.CharField(
        label='用户名',
        required=True,
    )

    password = forms.CharField(
        label='密码',
        widget=forms.widgets.PasswordInput(render_value=True)
    )

    re_password = forms.CharField(
        label='确认密码',
        widget=forms.widgets.PasswordInput(render_value=True)
    )


def index(request):

    obj = UserInfo()
    return render(request,'index.html',{'obj': obj})

  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>

    <form action="" method="post">

        {# 循环obj, 生成标签 #}
        {% for field in obj %}
            {# 循环后的 field 就是每一个form类的字段 #}
            <div>{{ field.label }}{{ field }}{{ field.errors.0 }}</div>
        {% endfor %}


        <p><input type="submit"></p>
    </form>

</body>
</html>

  

效果:

 

posted @ 2021-09-16 14:42  映辉  阅读(112)  评论(0)    收藏  举报