栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2022暑期实践(Django教程学习记录)(第二周4)P33用户添加错误提示P34今日概要

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022暑期实践(Django教程学习记录)(第二周4)P33用户添加错误提示P34今日概要

P33,用户添加错误提示
设置错误信息为中文,setting.py

几个小问题:
设置错误信息为中文:

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'en-hans'

把时间搞成可以点击选择的插件


在widgets入职时间中添加
attrs = {“type”: “Date”}s

views.py

from django import forms


class UserModelForm(forms.ModelForm):
    # 设置校验条件
    name = forms.CharField(min_length=3, label="用户名")
    # password = forms.CharField()
    class Meta:
        model = models.UserInfo
        fields = ['name', 'password', 'age', 'account', 'gender', 'department', 'create_time']
        widgets = {
            "create_time": forms.TextInput(attrs={'type': 'date'}),
        }
        # 可以用widgets 添加前端样式,可以用,比较麻烦
        # widgets = {
        #     "name": forms.TextInput(attrs={'class': 'form-control'}),
        #     "password": forms.TextInput(attrs={'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):
    if request.method == 'GET':
        form = UserModelForm()
        print(form)
        return render(request, 'user_add_modelform.html', {"form": form})
    else:
        form = UserModelForm(data=request.POST)
        if form.is_valid():
            print(form.cleaned_data)
            form.save()
            return redirect('/user_list/')
        else:
            print(form.errors)
            return render(request, 'user_add_modelform.html', {"form": form})

user_add_modelform.html

{% extends 'layout.html' %}


{#    

models添加用户

#} {#
#} {# {% csrf_token %}#} {#
#} {#

手动写

#} {#

{{ form.name.label }}{{ form.name }}

#} {#

{{ form.password.label }}{{ form.password }}

#} {#

{{ form.age.label }}{{ form.age }}

#} {#
#} {#
#} {#

自动循环生成

#} {# {% for field in form %}#} {#

{{ field.label }}:{{ field }}

#} {# {% endfor %}#} {#
#} {#
#} {# #} {% block content %}

新建用户ModelForm

{# novalidate关闭浏览器校验#}
{% csrf_token %} {% for field in form %}
{{ field }}
{% endfor %}
{% endblock %}

P34,今日概要
ModelForm,针对数据库操作
Form,后面聊
编辑步骤:
点击编辑,传递ID
编辑页面,(默认数据,根据ID获取数据写入对应位置)
提交:
错误提示
数据校验
在数据库中更新

views.py

def user_edit(request, nid):
    # 根据nid去数据库获取对应的数据
    row_object = models.UserInfo.objects.filter(id=nid).first()
    # 自动校验
    form = UserModelForm(instance=row_object)
    return render(request, 'user_edit.html', {'form': form})

user_add.html

{% extends 'layout.html' %}

{% block content %}
    

用户编辑

{# novalidate关闭浏览器校验#}
{% csrf_token %} {% for field in form %}
{{ field }}
{% endfor %}
{% endblock %}
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016116.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号