Django之modelform简介
在django中内置了form类和model类,当页面中的form值和model字段值完全一样时,此时可以通过model生成一个完全一样的form,Django中的modelForm就因此而生。
目标:
定义Author表,通过modelform提交数据到数据库
创建工程及app
python django-admin.py startproject formstudy
cd formstudy
python manager.py startapp study
编辑models.py
from __future__ import unicode_literals from django.db import models # Create your models here. TITLE_CHOICES = (
('MR','Mr.'),
('MRS','Mrs.'),
('MS','Ms.'),
) class Author(models.Model):
name = models.CharField(max_length=100)
title = models.CharField(max_length=3,choices=TITLE_CHOICES)
birth_date = models.DateField(blank=True,null=True) def __unicode__(self):
return self.name class Book(models.Model):
name = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
在app目录下新建forms.py
修改views.py
修改urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^testModelform/$', views.testModelForm, name='testModelForm'),
]
在templates目录下创建testModelForm.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mode测试</title>
</head>
<body>
<form method="post" action=".">{% csrf_token %}
<table>
<tr>
<td>
<label for="id_name">作者名:</label>
</td>
<td>
{{ form_info.name }}
</td>
<td>
{{ form_info.name.errors }}
</td>
</tr>
<tr>
<td>
<label for="id_title">标题:</label>
</td>
<td>
{{ form_info.title }}
</td>
<td>
{{ form_info.title.errors }}
</td>
</tr>
<tr>
<td>
<label for="id_title">出生日期:</label>
</td>
<td>
{{ form_info.birth_date }}
</td>
<td>
{{ form_info.birth_date.errors }}
</td>
</tr>
<tr>
<td>
<input type="submit" value="注册">
</td>
<td>
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
修改admin.py
from django.contrib import admin
import models
# Register your models here.
class AuthorAdmin(admin.ModelAdmin):
list_display = ['name','title','birth_date'] admin.site.register(models.Author)
修改settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'study',
]
启动服务
python manage.py runserver 127.0.0.1:8001
效果图
此时可以通过表单提交数据到数据库了
Django之modelform简介的更多相关文章
- Django中ModelForm应用
Django中ModelForm的应用 在传统中Form提交的POST的数据在服务器端获取时将不得不一一获取并验证数据的可靠性,但是使用django提供的Form时可简化该过程并提供相应的验证,同时D ...
- Django的ModelForm
基于django.forms.ModelForm:与模型类绑定的Form 先定义一个ModelForm类,继承ModelForm类 from django.forms import ModelForm ...
- Django中Model-Form验证
Django中Model-Form验证 class UserType(models.Model): caption=models.CharField(max_length=32) class User ...
- Python学习---django之admin简介
Django之admin简介 参考文献:http://www.admin10000.com/document/2220.html Djaogo为什么url可以匹配url.py里面的路径呢? 我们打 ...
- django中ModelForm save方法 以及快速生成空表单或包含数据的表单 包含错误信息
django中ModelForm学习系列一~save方法 Model代码 from django.db import models # Create your models here. class P ...
- Django 四——ModelForm用法
内容概要: 1.新增数据库表中数据 2.更新数据库表中数据 Django的ModelForm Django中内置了Form和Model两个类,有时候页面的表单form类与Model类是一一对应,因此分 ...
- Django Rest Framework 简介及 初步使用
使用Django Rest Framework之前我们要先知道,它是什么,能干什么用? Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API 为什么要使用Res ...
- django工作原理简介
django工作原理简介 先简单的介绍一下django的工作原理,其中还会涉及到Middleware(中间件,包括request, view, exception, response),URLConf ...
- Django(十四)课程机构列表页数据展示,Django的modelform,关于urls的重新分发
关于urls的重新分发: 如果所有url都配置在根路径的urls.py里,会特别多,而且也不易于修改,Django框架里支持urls的重新分发: 1.在根路径的urls配置上: PS:namespac ...
随机推荐
- 转载 linux umount 时出现device is busy 的处理方法--fuser
http://www.cnblogs.com/spicy/p/6894333.html (原文链接) 当任何目录有 mount, 然后有程序使用/挂在那个目录上的话, 就没有办法 umount 掉, ...
- HUE配置文件hue.ini 的hbase模块详解(图文详解)(分HA集群和非HA集群)
不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...
- linux环境下编译C++ 程序
GCC(GNU Compiler Collection)是Linux下最主要的编译工具,GCC不仅功能非常强大,结构也异常灵活.它可以通过不同的前端模块来支持各种语言,如:Java.Fortran.P ...
- [中英对照]Linux kernel coding style | Linux内核编码风格
Linux kernel coding style | Linux内核编码风格 This is a short document describing the preferred coding sty ...
- java.lang.NoSuchMethodError: org.json.JSONArray.iterator()Ljava/util/Iterator 阿里云短信
请尝试使用 <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk ...
- 再springMVC中自定义文件上传处理解决与原spring中MultipartResolve冲突问题
相信很多朋友再用springmvc时都遇见了一个问题,那就是自带的获取上传的东西太慢,而且不知道如何修改,其实不然,spring框架既然给我们开放了这个接口,就一定遵从了可扩展性的原则,经过查看org ...
- js 背景自动切换
//首页自动更换背景特效开始============================================ var curIndex = 0; //时间间隔(单位毫秒),每秒钟显示一张,数组 ...
- FineUI分组显示弹框最新的在最上边
function TOBTCorrFun(obj){ var msgContent = JSON.parse(obj.dataJson); var tJson = JSON.stringify(obj ...
- C# 委托、匿名方法、扩展方法
一.委托的使用: 详细委托和事件解释请看另一篇:http://www.cnblogs.com/Liyuting/p/6760706.html 二.匿名方法 三.扩展方法
- JS权威指南笔记之数据类型
1.类型分为原始类型和对象. 2.原始类型有:数字类型,字符类型,布尔,和null undefind. 3.JavaScript里的函数都是真值. 4.函数和通过New关键字创建对象.这个样函数称为构 ...