Django【进阶】modelform
实例:
class UserModelForm(ModelForm): class Meta:
model = models.UserInfo
fields = "__all__"
# fields = ['username','nickname',]
# exclude = ['username',]
# error_messages = {
# "username": {'required':'用户名不能为空'}
# }
# widgets = {
# "username":wid.Textarea(attrs={'class':'c1'})
# }
# labels = {
# 'username':'用户名'
# }
# help_texts = {
# 'username': '别瞎写,瞎写打你哦'
# }
#
# field_classes = {
# 'username': fld.EmailField
# } # 钩子
# def clean_email(self):
# pass
#
# def clean_nickname(self):
# pass
#
# def clean(self):
# pass
def user_add(request):
# 现在的你# 创建Form类:
if request.method == 'GET':
model_form = UserModelForm()
return render(request,'rbac/user_add.html',{'model_form':model_form})
else:
model_form = UserModelForm(request.POST)
if model_form.is_valid():
model_form.save()
return redirect('/rbac/users.html') return render(request, 'rbac/user_add.html', {'model_form': model_form}) def user_edit(request,pk):
obj = models.UserInfo.objects.filter(pk=pk).first() if not obj:
return redirect('/rbac/users.html')
if request.method == 'GET':
model_form = UserModelForm(instance=obj)
return render(request,'rbac/user_edit.html',{'model_form':model_form})
else:
model_form = UserModelForm(request.POST,instance=obj)
if model_form.is_valid():
model_form.save()
return redirect('/rbac/users.html')
return render(request, 'rbac/user_edit.html', {'model_form': model_form})
# 表格:
<body>
<a href="/rbac/user/add.html">添加</a>
<table border="">
{% for row in user_list %}
<tr>
<td>{{ row.pk }}</td>
<td>{{ row.nickname }}</td>
<td>{{ row.username }}</td>
<td>
<a href="/rbac/user/edit/{{ row.pk }}.html">编辑</a>
</td>
</tr>
{% endfor %}
</table>
</body> # 添加:
<body>
<h1>添加用户</h1>
<form method="POST" novalidate>
{% csrf_token %}
{{ model_form.as_p }}
<input type="submit" value="提交" />
</form>
</body> # 修改:
<body>
<h1>编辑用户</h1>
<form method="POST" novalidate>
{% csrf_token %}
{{ model_form.as_p }}
<input type="submit" value="提交" />
</form>
</body>
Django【进阶】modelform的更多相关文章
- django进阶-modelform&admin action
先看效果图: 登陆admin后的界面: 查看作者: 当然你也可以定制admin, 使界面更牛逼 数据库表结构: app01/models.py from django.db import models ...
- django进阶-3
先看效果图: 登陆admin后的界面: 查看作者: 当然你也可以定制admin, 使界面更牛逼 数据库表结构: app01/models.py from django.db import models ...
- 02:Django进阶篇
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- python 自动化之路 day 20 Django进阶/BBS项目【一】
一.django进阶 1.django orm 增删改查 1.1.创建表: 1 2 3 >>> from blog.models import Blog >>> b ...
- python web框架 Django进阶
django 进阶 基础中,一些操作都是手动创建连接的非主流操作,这样显得太low,当然也是为了熟悉这个框架! 实际中,django自带连接数据库和创建app的机制,同时还有更完善的路由系统机制.既然 ...
- Python之路,Day16 - Django 进阶
Python之路,Day16 - Django 进阶 本节内容 自定义template tags 中间件 CRSF 权限管理 分页 Django分页 https://docs.djangoproj ...
- Django中ModelForm应用
Django中ModelForm的应用 在传统中Form提交的POST的数据在服务器端获取时将不得不一一获取并验证数据的可靠性,但是使用django提供的Form时可简化该过程并提供相应的验证,同时D ...
- django进阶补充
前言: 这篇博客对上篇博客django进阶作下补充. 一.效果图 前端界面较简单(丑),有两个功能: 从数据库中取出书名 eg: 新书A 在form表单输入书名,选择出版社,选择作者(多选),输入完毕 ...
- django进阶-4
前言: 下篇博客写关于bootstrap... 一.如何在脚本测试django from django.db import models class Blog(models.Model): name ...
- Django进阶篇【1】
注:本篇是Django进阶篇章,适合人群:有Django基础,关于Django基础篇,将在下一章节中补充! 首先我们一起了解下Django整个请求生命周期: Django 请求流程,生命周期: 路由部 ...
随机推荐
- Kafka及Spring Cloud Stream
安装 下载kafka http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz kafka最为重要三个配置依次为:broke ...
- HDU4822-Tri-War
题目 给出一颗树,\(m\)次询问树上不相同的三个点\(A,B,C\).我们称一个点\(x\)被\(A\)占领当且仅当\(dist(A,x)>dist(B,x),dist(A,x)>dis ...
- 【bzoj5123】[Lydsy12月赛]线段树的匹配 树形dp+记忆化搜索
题目描述 求一棵 $[1,n]$ 的线段树的最大匹配数目与方案数. $n\le 10^{18}$ 题解 树形dp+记忆化搜索 设 $f[l][r]$ 表示根节点为 $[l,r]$ 的线段树,匹配选择根 ...
- 【模考】2018.04.08 Connection
Description 给定一张N个点M条边的连通无向图,问最少需要断开多少条边使得这张图不再连通. Input 第一行两个整数N,M含义如题所示. 接下来M行,每行两个正整数x,y,表示x和y之间有 ...
- 在 Android开发中,性能优化策略十分重要
在 Android开发中,性能优化策略十分重要本文主要讲解性能优化中的布局优化,希望你们会喜欢.目录 示意图 1. 影响的性能 布局性能的好坏 主要影响 :Android应用中的页面显示速度 2. 如 ...
- mysql主从复制 master和slave配置的参数大全
master所有参数1 log-bin=mysql-bin 1.控制master的是否开启binlog记录功能: 2.二进制文件最好放在单独的目录下,这不但方便优化.更方便维护. 3.重新命名二进制日 ...
- 一个优质的Vue组件库应该遵循什么样的设计原则
一.组件库的价值 就个人而言,拥有一套自己的组件库,可以让你的开发变得更高效,让你在行业里更有价值. 就团队而言,拥有一套团队的组件库,可以让协同开发变得更高效规范,让你的团队在公司更具有影响力. 就 ...
- C++中添加配置文件读写方法
比如有一个工程,一些变量有可能需要不时的修改,这时候可以通过从配置文件中读取该数值,需要修改时只需要修改配位文件即可. 比如有一个这样的变量m_nTest; 我么可以写两个函数ReadConfig() ...
- Topcoder SRM570 D1L3 CurvyonRails
几个样例: 5 5wCCwwwCC....w......www..wReturns: 0 3 3C.w....C.Returns: 1 21 20CC..CCCw.CwC..CC.w.CC.CCCwC ...
- poj1006 生理周期
生理周期 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 138947 Accepted: 44597 Descripti ...