models.py文件  

from django.db import models# Create your models here.
from django.db import models# Create your models here.
class Author(models.Model):nid = models.AutoField(primary_key=True)name = models.CharField(max_length=32)age = models.IntegerField()# 与AuthorDetail建立一对一的关系authorDetail = models.OneToOneField(to="AuthorDetail", on_delete=models.CASCADE)def __str__(self):return self.nameclass AuthorDetail(models.Model):nid = models.AutoField(primary_key=True)birthday = models.DateField()telephone = models.BigIntegerField()addr = models.CharField(max_length=64)def __str__(self):return str(self.telephone)class Publish(models.Model):nid = models.AutoField(primary_key=True)name = models.CharField(max_length=32)city = models.CharField(max_length=32)email = models.EmailField()def __str__(self):return self.nameclass Book(models.Model):nid = models.AutoField(primary_key=True, verbose_name="ID")title = models.CharField(max_length=32, verbose_name="书名")publishDate = models.DateField()price = models.DecimalField(max_digits=5, decimal_places=2, verbose_name="价格")# 与Publish建立一对多的关系,外键字段建立在多的一方publish = models.ForeignKey(to="Publish", to_field="nid", on_delete=models.CASCADE)# 与Author表建立多对多的关系,ManyToManyField可以建在两个模型中的任意一个,自动创建第三张表authors = models.ManyToManyField(to='Author', )def __str__(self):return self.title

 

在view的  edit 方法里:    

class ModelStark:# 获取modelform类
    @propertydef modelform_class(self):if self.modelfoem_class:return self.modelfoem_classelse:class ModelFormClass(forms.ModelForm):class Meta:model = self.modelfields = '__all__'return ModelFormClass# 改def edit(self, request, id):model_obj = self.model.objects.get(pk=id)if request.method == 'GET':# 生成一个带有model对象内容的modelform对象form = self.modelform_class(instance=model_obj)return render(request, 'stark/edit.html', {'form': form})else:form = self.modelform_class(request.POST, instance=model_obj)if form.is_valid():form.save()_url = self.get_url('list')return redirect(_url)else:return render(request, 'stark/edit.html', {'form': form})

在html页面里:    

<form action="" method="post" novalidate>{% csrf_token %}{% for field in form %}<div class="form-group"><label for="">{{ field.label }}</label>{{ field }}{% if field.is_pop %}<a class="pull-right addfield-type" onclick="add_page('{{ field.url }}')">            <span class="glyphicon glyphicon-plus"></span>          </a>{% endif %}<span class="erorr ">{{ field.errors.0 }}</span></div>{% endfor %}<button type="submit" name="submit" value="提交">提交</button>
</form>

转载于:https://www.cnblogs.com/95lyj/p/9398027.html

Django 之 modelForm (edit.html页面的编写)相关推荐

  1. js中ajax刷新页面,django+js+ajax实现刷新页面的方法

    本文实例讲述了django+js+ajax实现刷新页面的方法.分享给大家供大家参考,具体如下: 在服务器开发的时候,为了方便将服务器对外开一个接口来操作,可以使用django制作网页,通过页面来操作服 ...

  2. SpringBoot的开发(3)--前端页面的搭建、前端页面的编写、分页和增删改查功能的实现...

    前端页面的搭建 首先我们在resources包下新建一个文件夹static,SpringBoot默认会去把static包下的文件做一个路由 然后在static包下新建一个HTML File类型的文件, ...

  3. Django搭建个人博客之如何编写文章

    编写视图函数 打开article/views.py,增加文章详情页面的视图函数article_detail(): article/views.py...# 文章详情 def article_detai ...

  4. django中的缓存 单页面缓存,局部缓存,全站缓存 跨域问题的解决

    django中的缓存 单页面缓存,局部缓存,全站缓存 跨域问题的解决 参考文章: (1)django中的缓存 单页面缓存,局部缓存,全站缓存 跨域问题的解决 (2)https://www.cnblog ...

  5. Android 欢迎页面的编写

    今天,简单讲讲Android如何编写欢迎界面. 不废话了,在网上查了资料,都不是很好的方法.自己把自己的代码贴出来. manifest文件 <activity android:name=&quo ...

  6. 登录页面测试用例编写

    登录页面测试用例编写 功能性用例设计点: 输入已注册的用户名和正确的密码,验证是否成功登录 输入已注册的用户名和不正确的密码,验证是否成功失败,且提示信息正确 输入未注册的用户名和任意密码,验证是否登 ...

  7. 小辣鸡之——淘宝首屏静态页面的编写

    html结构--css样式--js行为 由于只是静态页面的编写,所以不涉及到js. 刚入门前端2个星期,写了这么个入门页面,mark这篇给自己看. 心得: 1.要先规划好区域.比如导航条.搜索条.主要 ...

  8. Django之modelform

    1.原生form表单 2.forms组件2 3.modleForm组件 4.前端form表单,后台form组件(可以没有数据库) 5.django补充 - 请求流程 1.原生form表单 步骤: 1. ...

  9. django 1.8 官方文档翻译: 1-2-5 编写你的第一个Django应用,第5部分

    编写你的第一个Django应用,第5部分 本教程上接教程第4部分. 我们已经建立一个网页投票应用,现在我们将为它创建一些自动化测试. 自动化测试简介 什么是自动化测试? 测试是检查你的代码是否正常运行 ...

最新文章

  1. Google 的 QUIC 华丽转身成为下一代网络协议: HTTP/3.0
  2. 在ASP.NET中UrlRewrite的实现(能隐藏扩展名)之一
  3. 队列表mysql,什么是在mysql中实现消息队列表的最佳方法
  4. go uintptr unsafe Pointer offset() 的使用
  5. 第二章 Burp Suite代理和浏览器设置
  6. ASP.Net 获取服务器信息
  7. 【网络流24题】【LOJ6224】深海机器人问题(最大费用最大流)
  8. linux网络状态检测libcurl,使用curl进行网络诊断 - msnshow的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  9. 围棋棋盘怎么编程python_围_围是什么意思_围字怎么读_围的含义_围字组词-新东方在线字典...
  10. Pinyin4j 的使用 Pinyin4jUtils工具类
  11. 32岁转行还来得及吗?
  12. enumerateObjectsUsingBlock 、for 、for(... in ...) 的区别 性能测试
  13. java断言的例子_Java 8 谓词/断言的例子
  14. 计算机网络管理员教材劳动部,劳动部教材办公室
  15. Segment Tree Beats(吉司机线段树)
  16. oracle18c卸载方法,Oracle 18c Sharding 删除catalog 步骤
  17. 美,英,荷文元音及元音组合国际音标对照表
  18. 传统IT企业转型之路
  19. Springboot返回数据形式
  20. 小程序源码:修复图片音频全新升级带特效喝酒神器小游戏微信小程序

热门文章

  1. [BZOJ2038] [2009国家集训队] 小Z的袜子(hose) (莫队)
  2. sqlserver 性能计数器的问题
  3. 数智德州,创新未来 | 智慧城市赛题上线山东大赛德州分赛场
  4. ICCV2021- 牛津大学新的预训练视频文本数据集WebVid-2M,设计用于端到端检索的联合视频和图像编码器!代码已开源!...
  5. Transformer可以不需要Softmax?Kakao提出了UFO-ViT,性能高,计算量还小
  6. MutualNet:一种“宽度-输入分辨率”互相学习的网络轻量化方法
  7. 一个方案搞定从模型量化到端侧部署全流程
  8. ShapeNet:超实时人脸特征点检测与形状拟合开源库
  9. c++ 表达式必须包含指向类的指针类型_C++:18const关键字(附常量指针、指针常量、常量指针常量)...
  10. 2018 年度人工智能热门事件大盘点:「悲喜交加」