[py]django表单不清空实现的2种方法

参考
参考: django实现内容不清空2种方法

django form的作用

1、生成html标签

2、验证输入内容

form生成表单

zhuji/forms.py

- 实例化表单
- 定制form错误信息
- 定制表单类型


from django import forms


class UserInfo(forms.Form):
    user_type_choice = (
        (0, u'普通用户'),
        (1, u'高级用户'),
    )
    user_type = forms.IntegerField(widget=forms.widgets.Select(choices=user_type_choice,
                                                               attrs={'class': "form-control"}))
    email = forms.EmailField(error_messages={'required': "邮箱不能为空"})
    host = forms.CharField(error_messages={'required': "主机不能为空"})
    port = forms.CharField(error_messages={'required': "端口不能为空"},
                           widget=forms.TextInput(attrs={'class': "form-control", 'placeholder': "端口"})
                           )
    mobile = forms.CharField(error_messages={'required': "手机不能为空"},
                             widget=forms.Textarea(attrs={'class': "form-control", 'placeholder': "手机号码"})
                             )

zhuji/views.py

from zhuji.forms import UserInfo


def user_list(request):
    obj = UserInfo()
    if request.method == "POST":
        user_input_obj = UserInfo(request.POST) #实例化form表单
        if user_input_obj.is_valid():#form验证通过
            data = user_input_obj.clean()#前端表单获取成一个dict

            hostname = data['host']#取出host字段
            print(data)
            print(hostname)
        else:
            error_msg = user_input_obj.errors
            return render(request, "user_list.html", {'obj': user_input_obj, 'errors': error_msg})#错误信息返回
    return render(request, 'user_list.html', {'obj': obj})

templates/user_list.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>user_list</title>
</head>
<body>
<div>
    <form action="/user_list/" method="post">
        <p>用户类型: {{ obj.user_type }} <span>{{ errors.user_type }}</span></p>
        <p>主机: {{ obj.host }} <span>{{ errors.host }}</span></p>
        <p>邮箱: {{ obj.email }} <span>{{ errors.email }}</span></p>
        <p>端口: {{ obj.port }} <span>{{ errors.port }}</span></p>
        <p>手机: {{ obj.mobile }} <span>{{ errors.mobile }}</span></p>
        <p><input type="submit"></p>
        {% csrf_token %}
    </form>
</div>
</body>
</html>

1312420-20180201213238609-1152471643.png

转载于:https://www.cnblogs.com/iiiiiher/p/8401377.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值