模拟窗口类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. JavaScript设计模式与开发实践(二)——apply&&call

    call和apply的用途 改变this指向 先看个例子: var obj1 = { name: 'sven' }; var obj2 = { name: 'anne' }; window.name ...

  2. 基于Hexo的个人博客搭建(下)

    5.服务器端测试 —5.1 clone到/var/www/html git clone /home/git/repos/myblog.git /var/www/html chown -R  git:g ...

  3. jquery实现在光标位置(input、textarea)插入内容的方法

    通过扫码枪扫码.按钮点击事件在光标处插入文本,这是前台js常用的功能.但是在input输入框和textarea文本框定位光标,插入数据是有点不同的 首先最简单的,适用于input输入框的方法 HTML ...

  4. Python之exec()/compile()方法使用

    # Python内置函数exec()可以用来执行Python代码 # 或内置函数compile()编译的代码对象 # exec程序中可写入python语法格式的代码,并直接输出. exec('prin ...

  5. 【Winfrom-TreeView】 跟随系统改变Style

    C#: public class NativeTreeView : System.Windows.Forms.TreeView { [DllImport("uxtheme.dll" ...

  6. maven报错1

    错误1 错误2 缺少mapper文件 错误3 缺少映射文件 <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉. --> <build> <re ...

  7. codevs 3185-3187 队列练习x

    三联水题……   3185x                      题目描述 Description 给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请输出最终的队头元素. 操作解 ...

  8. 小程序日期格式(yyyy-MM-dd HH:mm:ss)转(yyyy/MM/dd HH:mm:ss)

    let newDate = (date).replace(/-/g, '/'); var date = new Date(newDate).getTime();

  9. 灰度图像--图像分割 Robert算子

    学习DIP第43天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不 ...

  10. PCI-CAN卡驱动与数据通信调试小记

    以前做项目,不注意记录调试过程中遇到的问题,以后应该注意这一点.今天抽空总结一下PCI-CAN卡驱动与数据通信调试过程中遇到的问题,方便以后回忆和思考. 1. 中断服务之字节流报文组包状态机 这是一个 ...