实现效果:

代码示例:

代码:

models.py

from django.db import modelsclass UserInfo(models.Model):username = models.CharField(max_length=32)email = models.EmailField(max_length=32) 

urls.py

from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [url(r'^admin/', admin.site.urls),url(r'^users/', views.users),url(r'^add_user/', views.add_user),url(r'^edit_user-(\d+)/', views.edit_user),
]

views.py

from django.shortcuts import render
from django.shortcuts import redirect
from app01 import models
from app01.forms import UserFormdef users(request):user_list = models.UserInfo.objects.all()return render(request,'users.html',{'user_list':user_list})def add_user(request):if request.method == 'GET':obj = UserForm()return render(request,'add_user.html',{'obj':obj})else:obj = UserForm(request.POST)if obj.is_valid():models.UserInfo.objects.create(**obj.cleaned_data)return redirect('/users/')else:return render(request,'add_user.html',{'obj':obj})def edit_user(request,nid):if request.method == "GET":data = models.UserInfo.objects.filter(id=nid).first()obj = UserForm({'username':data.username,'email':data.email})return render(request,'edit_user.html',{'obj':obj,'nid':nid})else:obj = UserForm(request.POST)if obj.is_valid():models.UserInfo.objects.filter(id=nid).update(**obj.cleaned_data)return redirect('/users/')else:return render(request,'edit_user.html',{'obj':obj,'nid':nid})

forms.py

from django import forms as dforms
from django.forms import fieldsclass UserForm(dforms.Form):username = fields.CharField()email = fields.EmailField()

users.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><a href="/add_user/">添加</a><ul>{% for row in user_list %}<li>{{ row.id }}-{{ row.username }}-{{ row.email }} <a href="/edit_user-{{ row.id }}/">编辑</a></li>{% endfor %}</ul>
</body>
</html>

add_user.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><form action="/add_user/" method="post" novalidate>{% csrf_token %}<p>{{ obj.username }}{{ obj.errors.username.0 }}</p><p>{{ obj.email }}{{ obj.errors.email.0 }}</p><input type="submit" value="提交" /></form>
</body>
</html>

edit_user.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><form action="/edit_user-{{ nid }}/" method="POST" novalidate>{% csrf_token %}<p>{{ obj.username }}{{ obj.errors.username.0 }}</p><p>{{ obj.email }}{{ obj.errors.email.0 }}</p><input type="submit" value="提交" /></form>
</body>
</html>

django from组件 实现增加 删除 编辑(推荐用法)相关推荐

  1. html table增加删除编辑,一个可以增加和删除行的table并可编辑表格中内容

    页面文件 key value value 添加行 保存 js文件 //保存国际化文件 function savei18ninfo(){ var i18ninfo = geti18ninfo(); al ...

  2. 改造layui-树(tree)组件的添加、编辑、删除操作(补充上一篇)

    这篇是用来补充上一篇:改造layui-树(tree)组件支持添加.编辑.删除的自定义(弹框)操作(https://blog.csdn.net/liona_koukou/article/details/ ...

  3. 【Unity入门】6.组件的增加和删除

    [Unity入门]组件的增加和删除     大家好,我是Lampard~~     欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢 (1)删除组件     之前的学习探索过程中,我们也 ...

  4. 路飞学城python全栈开发_python 全栈开发,Day98(路飞学城背景,django ContentType组件,表结构讲解)...

    昨日内容回顾 1. 为什么要做前后端分离?-前后端交给不同的人来编写,职责划分明确.-API (IOS,安卓,PC,微信小程序...)-vue.js等框架编写前端时,会比之前写jQuery更简单快捷. ...

  5. 一篇文章浅析Django Form组件相关知识

    击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 灭烛怜光满,披衣觉露滋. 前言 在上 ...

  6. php mysql增改删_PHP分享:如何实现MySQL的增加删除修改查看

    原标题:PHP分享:如何实现MySQL的增加删除修改查看 各位朋友,大家上午好! 今天给大家带来的是 如何实现MySQL的增加删除修改查看! 这里就需要用到一个PHP MySQL的增加删除修改查看的类 ...

  7. java 解析/操作 xml 几种常用方式 xml的增加/删除/修改

    java 解析/操作 xml 几种常用方式 xml的增加/删除/修改 首先,我们先介绍几种常用的xml解析器. 1. 介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方 ...

  8. centos手动增加删除swap分区

    SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的.它类似于Windows中的虚拟内存.在Windows中,只可以使用文件来当作虚拟内存.而linux可以文件或者分区来当作 ...

  9. HTML 上标题栏把右标题栏遮挡,如何编辑组件的样式(编辑样式)?

    如何编辑组件的样式(编辑样式)?如何设置某一块内容的背景.边框.边距.文字样式? 编辑样式为组件通用功能,即几乎每个组件都是有"编辑样式"这个功能的. 一.如何进入组件的" ...

最新文章

  1. java final bigd_【BigData】Java基础_常量
  2. Java开发面试问题,Jsoup解析html
  3. 【Python小游戏】扫雷游戏竟有世界排行榜,中国90后00后霸占半壁江山?
  4. CefSharp向浏览器中指定DOM发送点击事件
  5. 在@NamedQueries中枚举@NamedQuery
  6. 将txt文件转换成xlsx文件及用matlab读取xlsx
  7. Flex in a Week video training
  8. Dijkstra算法【模板】
  9. vue给html动态添加属性,Vue中怎么动态添加类名?
  10. python音乐可视化效果_python 音频可视化
  11. 文档型非关系数据库MongoDB经验总结
  12. java,jsp页面添加提示图以及提示音乐
  13. 小米9se是Android6吗,小米9SE评测 优缺点十分明显
  14. python反恐精英代码_python下如何查询CS反恐精英的服务器信息
  15. ELM饿了么获取COOKIE教程附吃货豆脚本
  16. 程序员的职场晋升之路
  17. 企业信用等级AAA认证 山东企业信用3A认证办理费用周期
  18. 字号-磅-毫米对应关系
  19. Chrom浏览器安装Axure扩展插件
  20. 阿里云文件存储NAS和对象存储OSS区别对比如何选择?

热门文章

  1. java jpanel 缓冲画图_Java:Jpanel 缓冲区 图像
  2. python打包工具哪个好用_python打包工具比较
  3. Powerful array CodeForces - 86D (莫队算法)
  4. CodeForces - 617E XOR and Favorite Number (莫队+前缀和)
  5. 内存的使用和优化的注意事项
  6. 《计算机网络》谢希仁第五版考试重点整理
  7. StrUtils 单元下的公用函数目录
  8. qml-创建可移动的模态弹出框
  9. 模式对话框与非模式对话框的区别2
  10. 数组和指针、数组指针和指针数组