# Django admin、form表单的应用记录

目录

  • Django admin、form表单的应用记录

    • 一 Django admin

      • 1. 使用介绍
    • form组件使用
      • 1. form的作用
      • 2. form组件生成HTMKL代码
      • 3. form组件校验数据有效性
      • 3. form组件如何给html标签设置默认值

Django admin、form表单的应用记录

一 Django admin

1. 使用介绍

1. 创建超级用户

python manage.py createsuperuser
username: wph
password: 123123qwe

2. 页面汉化,更改settings.py

# LANGUAGE_CODE = ‘en-us‘
LANGUAGE_CODE = ‘zh-hans‘

在app的admin.py中 导入要管理的表

from django.contrib import admin
from app01 import models

# Register your models here.

# 将app01中的表 注册到admin中,之后就能在admin页面对表管理
admin.site.register(models.Publisher)

3. 显示字段的中文

要在管理页面显示字段的中文名称:

在字段中加入verbose_names

class Publisher(models.Model):
    name = models.CharField(max_length=32, unique=True, verbose_name=‘出版社名称‘)
    address = models.TextField()

4. 显示表的中文名称,加入Meta类

显示表的中文名称,加入Meta类

class Publisher(models.Model):
    name = models.CharField(max_length=32, unique=True, verbose_name=‘出版社名称‘)
    address = models.TextField(verbose_name=‘出版社地址‘)

    class Meta:
        verbose_name = ‘出版社‘
        # 显示复数会加s,需要加入如下字段;
        verbose_name_plural = verbose_name

5. 显示对象的名称

显示添加的信息为对象 Publisher object ,改为详细信息

# 在models中加入如下类
    def __str__(self):
        return self.name

6. 必填项更改

# 在models的字段中,null=True 控制数据库可以为空,black=True 控制django admin可以为空

    phone = models.CharField(max_length=11, null=True, blank=True)  

form组件使用

1. form的作用

  1. 生成HTML代码
  2. 帮我们做数据有效性的校验
  3. 保留上次输入的内容,显示错误提示

2. form组件生成HTMKL代码

3. form组件校验数据有效性

1. 内置的校验规则

内置的校验规则

1. require=True 该字段必填

2. max_length 该字段最大长度

3. min_length 该字段最小长度

2. 自定义校验规则(正则)

  1. 手机号的格式校验 利用内置的正则校验
from django.core.validators import RegexValidator

    phone = forms.CharField(
        max_length=11,
        label=‘电话‘,
        required=False,  # 设置非必填项
        widget=forms.widgets.TextInput(attrs={‘class‘: ‘form-control‘}),
        validators=[RegexValidator(r‘^1[3456789]\d{9}$‘, ‘手机号码格式不正确‘)]  #自定义校验规则
    )
  1. 手机号的唯一性校验

    自定义校验规则

from django.core.exceptions import ValidationError

def phone_validate(value):
    # 拿用户天界的手机号去数据库匹配查找
    is_exist = models.Book.objects.filter(phone=value)
    if is_exist:
        raise ValidationError(‘该手机号已经注册‘)
    else:
        return value

# 使用自定义校验
    phone = forms.CharField(
        max_length=11,
        label=‘电话‘,
        required=False,  # 设置非必填项
        widget=forms.widgets.TextInput(attrs={‘class‘: ‘form-control‘}),
        validators=[RegexValidator(r‘^1[3456789]\d{9}$‘, ‘手机号码格式不正确‘), phone_validate]  # 自定义校验规则
    )

3. 使用钩子(hook)函数做校验

  1. 局部钩子
class BookForm(forms.Form):
    def a
        pass

    # 自定义一个局部钩子函数
    def clean_title(self):
        value = self.cleaned_data.get(‘title‘)
        if ‘jpm‘ in value:
            raise ValidationError(‘jpm已被河蟹‘)
  1. 全局钩子
class BookForm(forms.Form):
    def foo():
        pass

    # 全局钩子
    def clean(self):
        self.cleaned_data  # 可以去到所有字段数据 可以用来判断二次确认密码是否争取
        self.add_error(‘字段‘, ‘两次输入密码不一致‘)
        pass

3. form组件如何给html标签设置默认值

1. 每一个字段设置默认值

def edit_book(request, pk):
    book_obj = models.Book.objects.filter(id=pk).first()
    book_dict = model_to_dict(book_obj)  # 把一个对象快速转换成字典
    book_dict[‘publish_date‘] = book_obj.publish_date.strftime(‘%Y-%m-%d‘)
    form_obj = BookForm(book_dict)  ## 给form实例传一个字典,设置默认值

原文地址:https://www.cnblogs.com/wangph/p/9551696.html

时间: 2024-10-12 12:41:50

# Django admin、form表单的应用记录的相关文章

Django--分页器(paginator)、Django的用户认证、Django的FORM表单

分页器(paginator) >>> from django.core.paginator import Paginator >>> objects = ['john', 'paul', 'george', 'ringo'] >>> p = Paginator(objects, 2) >>> p.count #数据总数 4 >>> p.num_pages #总页数 2 >>> type(p.page

form表单,django的form表单,

django的表单系统,分2种, 基于django.forms.Form的所有表单类的父类, 基于django.forms.ModelForm,可以和模型类绑定的Form, 直接用原生的form表单,也可以直接用,较麻烦, django的form表单,也可用可不要, 在views里创建一个类,继承了forms.Form ,每个字段就是一个输入框, #----- #django 的form表单 from django import forms class MyForm(forms.Form): #

django,form表单,数据库增删改查

Django 02 复习:  Django下载:   在命令行输入:    pip3 install django==1.11.11    在这里不要用最新的3.7,推荐使用3.6/3.5/3.4    判断下载成功:     django-admin    创建django项目:     django-admin startproject 项目名     会创建跟项目同名的文件夹     settings.py 暴露给用户可配置的配置文件     urls.py     路由与视图函数对应文件

Form表单和django的form表单的补充,

form 表单中的button按钮, <button>提交</button>  :放在form表单中,会有一个提交事件,会提交form数据, <input type="button" value="提交">  :是一个单纯的按钮,没有任何默认事件, 先匹配url和视图函数 from django.conf.urls import url from django.contrib import admin from app01 imp

Django之form表单操作

小白必会三板斧 from django.shortcuts import render,HttpResponse,redirect HttpRespone:返回字符串 render:返回html页面 redirect:重定向 静态文件配置 静态文件:网站所用到的,自己写好js,自己写好css,第三方的框架bootstrap fontwesome sweetalert 通常情况下网站所用到的静态文件资源统一都放在static文件下 STATIC_URL='/static' 是访问静态资源的接口前缀

django之form表单验证

django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf-8 -*- import re from django import forms from django.core.exceptions import ValidationError def mobile_validate(value): mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]

Django 之 form表单

Django中的Form表单 1.背景 平时我们在书写form表单时,经常都是手动的去写一些input标签,让用户输入一些功能,进行一些校验的判断,等等.Django中的form表单就能够帮我们去实现这些功能,比较便捷. 2.Django form表单的功能 1.生成页面可执行的HTML标签 2.对应户的数据进行校验 3.保留上次输入的内容 3.先用普通方式手写一个注册功能 1.views.py文件中 # 注册 def register(request): error_msg = ""

Django框架form表单配合ajax注册

总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 下面是写的登录页面的实例 1:views视图中的代码 # 注册页面 def register(request): if request.method == 'POST': # 将提交过来的数据放的form表单中进行校验 form_obj = forms.Register(request.POST) # 判断校验是否真确 print(form_obj.is_valid()) ret

django 基于form表单上传文件和基于ajax上传文件

一.基于form表单上传文件 1.html里是有一个input type="file" 和 'submit'的标签 2.vies.py def fileupload(request): if request.method == 'POST': print(request.POST) print(request.FILES) # from django.core.files.uploadedfile import InMemoryUploadedFile print(type(reque