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})