django model.form

一.

model的知识点

1              class UserInfo(AbstractUser):
2                     tel=models.CharField(max_length=32)
3                     gender=models.IntegerField(choices=((1,"男"),(2,"女")),default=1)
4
5              yuan=UserInfo.objects.get(pk=1)
6              yuan.get_gender_display()

modelform

modefform使用

model.py:

 1             class Book(models.Model):
 2                 nid=models.AutoField(primary_key=True)
 3                 title=models.CharField(max_length=32)
 4                 price=models.DecimalField(max_digits=8,decimal_places=2) # 999999.99
 5                 pub_date=models.DateTimeField()  # "2012-12-12"
 6
 7                 # comment_count=models.IntegerField(default=100)
 8                 # poll_count=models.IntegerField(default=100)
 9
10                 publish=models.ForeignKey(to="Publish",on_delete=models.CASCADE)  # 级联删除
11                 authors=models.ManyToManyField(to="Author")
12                 def __str__(self):
13                     return self.title

复杂版

form.py:

 1         form.py:
 2                # 构建modelform
 3                class BookModelForm(forms.ModelForm):
 4                     class Meta:
 5                         model=Book
 6                         fields="__all__"
 7
 8                ‘‘‘
 9                BookModelForm等同于:
10                     class BookForm(forms.Form):
11                             title=forms.CharField(max_length=32)
12                             price=forms.IntegerField()
13                             pub_date=forms.DateField(widget=widgets.TextInput(attrs={"type":"date"}))
14                             #publish=forms.ChoiceField(choices=[(1,"AAA"),(2,"BBB")])写死的
15                             publish=forms.ModelChoiceField(queryset=Publish.objects.all())
16                             authors=forms.ModelMultipleChoiceField(queryset=Author.objects.all())
17
18                ‘‘‘

完美版

逻辑:

添加书籍

def add(request):

if GET:

form=BookModelForm()

return render(reqeust,{"form":form})渲染页面

 1           ‘‘‘
 2                           渲染页面
 3                               <form action="" method="post" novalidate>
 4                                     {% csrf_token %}
 5                                       {% for field in form %}
 6                                             <div class="form-group">
 7                                                  <label for="title">{{ field.label }}</label>
 8                                                  {{ field }}
 9                                                  <span>{{ field.errors.0 }}</span>
10                                             </div>
11                                      {% endfor %}
12                                     <input type="submit" value="提交" class="btn btn-default pull-right">
13                               </form>
14                           ‘‘‘

add.html

esle : POST 请求

form=BookModelForm(request.POST)

if form.is_valid():

form.save()

return redirect("")

else:

return render(reqeust,{"form":form})
编辑书籍: 

def edit(request,id):           edit_obj=Book.objects.get(pk=id)           if GET请求:            form=BookModelForm(instance=edit_obj)           return render(reqeust,{"form":form})           ‘‘‘           渲染页面同添加页面

‘‘‘      else POST请求:            form=BookModelForm(request.POST,instance=edit_obj)#加入instance等同于                       if form.is_valid():               form.save() #  edit_obj.update(clean_data)              return redirect("/")           else:              return render(reqeust,{"form":form})

原文地址:https://www.cnblogs.com/zhangqing979797/p/9919020.html

时间: 2024-08-28 06:52:40

django model.form的相关文章

django model form 保存方法 django-rest-framework save 修改某一项值 方法

django Model Form django-rest-framework save 方法 修改某个数据的值 原文地址:https://www.cnblogs.com/zhaoyingjie/p/9235782.html

Django之Form组件

Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 from django.forms import Form from django.forms import widgets from django.forms import fields class MyForm(Form): user = fields.CharField( widget=widgets.Tex

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

Django Model数据访问Making queries

创建完Model之后, Django 自动为你提供一套数据库抽象层的API,利用它可以完成创建,提取,更新,删除对象的操作. 以下面的Model为例: class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() # On Python 3: def __str__(self): def __unicode__(self): return self.name class

django下Form表单的使用(一)

一.什么是Form?什么是Django Form?django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm关于django的表单系统,主要分两种 基于django.forms.Form:所有表单类的父类基于django.forms.ModelForm:可以和模型类绑定的Form 实例:实现添加出版社信息的功能 二.不使用Django Form的情况(原生的写html实现表单提交) add_publisher.html<!DOCTYPE htm

Django Model 定义语法

Django Model 定义语法 版本:1.7主要来源:https://docs.djangoproject.com/en/1.7/topics/db/models/ 简单用法 from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) 会自动生成SQL: CREA

python3-开发进阶Django-form组件中model form组件

Django的model form组件 这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,先来一个简单的例子来看一下这个东西怎么用:比如我们的数据库中有这样一张学生表,字段有姓名,年龄,爱好,邮箱,电话,住址,注册时间等等一大堆信息,现在让你写一个创建学生的页面,你的后台应该怎么写呢?首先我们会在前端一个一个罗列出这些字段,让用户去填写,然后我们从后天一个一个接收用户的输入,创建一个新的学生对象,保存其实,重点不是这些,而是合法性验证,我们需要在前端判

【Django】Form组件

目录 Form组件介绍 常用字段与插件 Form组件中所有内置字段 从数据库中获取数据 校验示例 检验手机号是否合法 方式一(基本操作) 方式二(自定义验证规则) 方式三(利用钩子) 验证密码一致性 钩子 局部钩子 全局钩子 进阶 批量添加样式 ModelForm Form套Form @ *** Form组件介绍 在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,

Django 之 Form 组件

常用功能 From 组件主要有以下几大功能: 生成 HTML 标签 验证用户数据(显示错误信息) HTML Form 提交保留上次提交数据 初始化页面显示内容 小试牛刀 下面我们通过 Form 组件来生成 HTML 标签和验证用户提交的数据以及保留上次提交的数据. 创建 Form 类 form_verify.py from django import forms from django.forms import fields class FormVerify(forms.Form): user