P32用户-添加ModelsForm方法
{% extends 'layout.html' %}
{# <h3>models添加用户</h3>#}
{# <form method="POST" action="/user_add_modelform/">#}
{# {% csrf_token %}#}
{# <div>#}
{# <p>手动写</p>#}
{# <p>{{ form.name.label }}{{ form.name }}</p>#}
{# <p>{{ form.password.label }}{{ form.password }}</p>#}
{# <p>{{ form.age.label }}{{ form.age }}</p>#}
{# </div>#}
{# <div>#}
{# <p>自动循环生成</p>#}
{# {% for field in form %}#}
{# <p>{{ field.label }}:{{ field }}</p>#}
{# {% endfor %}#}
{# </div>#}
{# <div>#}
{# </form>#}
{% block content %}
<div class="container">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">新建用户ModelForm</h3>
</div>
<div class="panel-body">
<form action="/user_add_modelform/" method="POST">
{% csrf_token %}
{% for field in form %}
<div class="form-group">
<label>{{ field.label }}</label>
{{ field }}
</div>
{% endfor %}
<button type="submit" class="btn btn-default">提交</button>
</form>
</div>
</div>
</div>
{% endblock %}
from django import forms
class UserModelForm(forms.ModelForm):
class Meta:
model = models.UserInfo
fields = ['name', 'password', 'age', 'account', 'gender', 'department']
# 可以用widgets 添加前端样式,可以用,比较麻烦
# widgets = {
# "name": forms.TextInput(attr={'class': 'form-control'}),
# "password": forms.TextInput(attr={'class': 'form-control'}),
# }
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for name, field in self.fields.items():
print(name, field)
# 跳过不加样式:
if name == "password":
continue
field.widget.attrs = {'class': 'form-control', 'placeholder': field.label}
def user_add_modelform(request):
form = UserModelForm()
print(form)
return render(request, 'user_add_modelform.html', {"form": form})