模拟窗口类ModelForm的应用

  1. 模拟窗口是Form的窗口中的fields是引用models类


class Mood(models.Model):
status =models.CharField(max_length=10,null=False) def __unicode__(self):
return self.status class Post(models.Model):
mood = models.ForeignKey('Mood',on_delete=models.CASCADE) #外键引用
nickname =models.CharField(max_length=10, default='不愿意透露自己的人')
message = models.TextField(null=False)
del_pass = models.CharField(max_length=10)
pub_time = models.DateTimeField(auto_now=True)
enabled = models.BooleanField(default=False) def __unicode__(self):
return u"%s" %(self.message) class PostForm(forms.ModelForm):#窗口类,要import forms
class Meta:
model= Post#用于指定用哪个model
fields= ['mood','nickname','message','del_pass']#用于指定用model中哪些变量 def __init__(self, *args, **kwarge):
super(PostForm, self).__init__(*args, **kwarge)
self.fields['mood'].label = '现在的心情'
self.fields['nickname'].label = '你的昵称'
self.fields['message'].label = '你的消息'
self.fields['del_pass'].label = '设置密码'
  1. view调用的函数

def posttest(request):
if request.method=='POST': #点击提交时的处理入口
post_form = PostForm(request.POST)
if post_form.is_valid:
message = "你的信息已存储"
post_form.save()
else:
message = "如果张贴,要每个字段多必须写"
template = get_template('one/posttest.html')
post_form = PostForm()
moods = Mood.objects.all()
request_context = RequestContext(request)
request_context.push(locals())
html = template.render(request_context) return HttpResponse(html)
  1. 对用的html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>post test</title>
</head>
<body>
{% if message %}
<h2>{{ message }}</h2>
{% endif %}
<form action="." method="post">
{% csrf_token %}
<!--#导入包,防止伪站点请求-->
<table>
{{ post_form.as_table }}
</table>
<input type="submit" value="张贴" >
<input type="reset" value="清除重设" >
</form>
</body>
</html>
  1. 最后,附上结果图

模拟窗口类ModelForm的应用的更多相关文章

  1. MFC注册窗口类以及FindWindow按窗口类名查询

    很多玩游戏的人都知道一般游戏客户端程序是不允许双开的,就是说在同一游戏在启动的时候,是无法打开多个窗口.很多其他软件如酷狗播放器等也是这样.如果把打开的窗口最小化,这时重新启动程序,最小化的窗口会被显 ...

  2. Win32编程:窗口类样式+窗口外观样式+窗口显示样式

    1.窗口类样式WNDCLASS.style CS_VREDRAW 提供窗口位置变化事件和高度变化事件的处理程序,功能是重绘窗口 CS_HREDRAW 提供窗口位置变化事件和宽度变化事件的处理程序,功能 ...

  3. 窗口类(Window Class)概述

    windows窗口编程(通常意义上的win32)有几个比较核心的概念:入口函数WinMain.窗口类Window Class.窗口过程.消息处理机制.通用控件.本文主要介绍窗口类的相关概念,包括: 窗 ...

  4. 通用窗口类 Inventory Pro 2.1.2 Demo1(下续篇 ),物品消耗扇形显示功能

    本篇想总结的是Inventory Pro中通用窗口的具体实现,但还是要强调下该插件的重点还是装备系统而不是通用窗口系统,所以这里提到的通用窗口类其实是通用装备窗口类(其实该插件中也有非装备窗口比如No ...

  5. 通用窗口类 Inventory Pro 2.1.2 Demo1(下)

    本篇想总结的是Inventory Pro中通用窗口的具体实现,但还是要强调下该插件的重点还是装备系统而不是通用窗口系统,所以这里提到的通用窗口类其实是通用装备窗口类(其实该插件中也有非装备窗口比如No ...

  6. 通用窗口类 Inventory Pro 2.1.2 Demo1(中)

    本篇想总结的是Inventory Pro中通用窗口的具体实现,但还是要强调下该插件的重点还是装备系统而不是通用窗口系统,所以这里提到的通用窗口类其实是通用装备窗口类(其实该插件中也有非装备窗口比如No ...

  7. 探索Win32系统之窗口类(转载)

    Window Classes in Win32 摘要 本文主要介绍win32系统里窗口类的运做和使用机制,探索一些细节问题,使win32窗口类的信息更加明朗化. 在本文中,"类", ...

  8. Duilib中系统消息在自己窗口类的使用

    这些Win32消息响应函数,子类只需要重写,不需要在HandleMessage里面再调用一次 开发中遇到的问题,在任务栏关闭程序,会响应WM_SYSCOMMAND消息,因为要给用户提示是否关闭,所以需 ...

  9. win32键盘记录 -- 自定义窗口类

    最近学了些关于window api编程的知识,于是琢磨编写一些键盘记录器,能够把输入的按键输出到窗口内,并且实现窗口自动滚动. 封装窗口类使用了GWL_USERDATA字段来保存this指针,比较容易 ...

随机推荐

  1. JS 数组相关的操作函数

    // 1.数组拼接 concat() var a = [1, 2]; var b = [3, 4]; console.log(a.concat(b)); // [1, 2, 3, 4] // 2.数组 ...

  2. 微软Blazor组件发布,DevExpress v19.1.8中可用:Charts新功能

    点击获取DevExpress v19.2.3最新完整版试用下载 DevExpress UI for Blazor在v19.1.8中可用,此次更新发布包括DevExpress Blazor组件的主要功能 ...

  3. JAVA8之日期操作详解

    package org.date; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.Month; im ...

  4. js中for..of..和迭代器

    for..of是ES6中引入的新特性,它主要的作用是:循环一个可迭代的对象. 它可以循环遍历,数组.字符串.Set对象等等 示例一: let str = 'hello' for (item of st ...

  5. Linux安装JAVA web环境

    一:安装jdk   1.下载 在oracle下载东西的时候因为oracle的一些验证机制,所以需要在链接前面添加一些参数 wget --no-check-certificate --no-cookie ...

  6. 有效的结构化思维训练,MECE分析法

    MECE原则,表达精准分类与全面性的有效利器 结构化思维的本质就是逻辑,其目的在于对问题的思考更完整.更有条理,它帮助我们一个一个找到线头,理清思路,探求事物之间的相互联系.MECE分析法是一种结构化 ...

  7. vim8.1安装

    win下直接就有gvim8.1.exe安装.但linux下直接从apt-get里面下载的vim都是远古版本,需要手动编译安装. 首先,下载vim源代码 git clone https://github ...

  8. AtCoder AGC009E Eternal Average (DP)

    题目链接 https://atcoder.jp/contests/agc009/tasks/agc009_e 题解 又被劝退了... 第一步转化非常显然: 就等价于一开始有一个数\(1\), 有\(\ ...

  9. HDU 5794 A Simple Chess ——(Lucas + 容斥)

    网上找了很多人的博客,都看不太懂,还是大力学长的方法好. 要说明的一点是,因为是比较大的数字的组合数再加上mod比较小,因此用Lucas定理求组合数. 代码如下(有注释): #include < ...

  10. [清华集训2016]石家庄的工人阶级队伍比较坚强——三进制FWT

    题目链接: [清华集训2016]石家庄的工人阶级队伍比较坚强 题目大意:有$n=3^m$个人玩石头剪刀布,共$t$轮游戏,每轮每个人要和包括自己的所有人各进行$m$次石头剪刀布.每个人在$m$轮中的决 ...