djangobb之view form
def add_topic(request, forum_id):
"""
create a new topic, with or without poll
"""
forum = get_object_or_404(Forum, pk=forum_id)#获取表单
if not forum.category.has_access(request.user):#判断有无访问权
raise PermissionDenied ip = request.META.get('REMOTE_ADDR', None)
post_form_kwargs = {"forum": forum, "user": request.user, "ip": ip, } poll_form = None
if request.method == 'POST':#表单数据发过来啦
form = AddPostForm(request.POST, request.FILES, **post_form_kwargs)#构造添加主题表单
if form.is_valid():#判断主题是否合法
all_valid = True
else:
all_valid = False if forum_settings.ENABLE_POLLS:#取得投票数据
poll_form = PollForm(request.POST)
if not poll_form.has_data():
# All poll fields are empty: User didn't want to create a poll
# Don't run validation and remove all form error messages
poll_form = PollForm() # create clean form without form errors
elif not poll_form.is_valid():
all_valid = False if all_valid:
post = form.save()
if poll_form and poll_form.has_data():
poll_form.save(post)
messages.success(request, _("Topic with poll saved."))
else:
messages.success(request, _("Topic saved."))
return HttpResponseRedirect(post.get_absolute_url())
else:#点击添加主题,返回用户的添加主题表单
form = AddPostForm(
initial={
'markup': request.user.forum_profile.markup,
'subscribe': request.user.forum_profile.auto_subscribe,
},
**post_form_kwargs
)
if forum_settings.ENABLE_POLLS and forum_id: # Create a new topic
poll_form = PollForm() context = {
'forum': forum,
'create_poll_form': poll_form,
'form': form,
'form_url': request.path,
'back_url': forum.get_absolute_url(),
}
return render(request, 'djangobb_forum/add_topic.html', context)
添加主题和表单提交,都调用相同的view函数。
djangobb之view form的更多相关文章
- 重新认识快速视图窗体(Quick View Form)
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复158或者20151009可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 在我的 微软Dynamics C ...
- 天河微信小程序入门《四》:融会贯通,form表单提交数据库
天河在阔别了十几天之后终于又回来了.其实这篇文章里的demo是接着(天河微信小程序入门<三>)后面就做了的,但是因为最近在做别的项目,所以就偷懒没有发出来.放到今天来看,从前台提交数据到数 ...
- 第六篇、微信小程序-form组件
表单: 将组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/> <pi ...
- 微信小程序基础之表单Form的使用
表单Form的应用很广泛,我们可以利用form设计登录注册,也可以设计一种答题问卷的形式,今天主要讲一下form的使用 form表单,将组件内输入的"switch","i ...
- 微信小程序-form表单-获取用户输入文本框的值
微信小程序-form表单-获取用户输入文本框的值 <input name='formnickname' class="textarea" placeholder=" ...
- 小程序笔记四:表单提交form
index.wxml代码 <form bindsubmit="formSubmit" bindreset="formReset"> <view ...
- 微信小程序入门一: 简易form、本地存储
实例内容 登陆界面 处理登陆表单数据 处理登陆表单数据(异步) 清除本地数据 实例一: 登陆界面 在app.json中添加登陆页面pages/login/login,并设置为入口. 保存后,自动生成相 ...
- 微信小程序组件form
表单组件form:官方文档 Demo Code: Page({ formSubmit: function(e) { console.log('form发生了submit事件,携带数据为:', e.de ...
- 微信小程序组件解读和分析:九、form表单
form表单组件说明: 表单,将组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/ ...
随机推荐
- 经常开发出现bug的同事,
各位,再强调一点,以后如果遇到bug的地方,是自己开发的内容,我希望自己去看下调整下,而不是等再此被提出,等到领导再次提出问题,或者多次出现问题会影响自己的评级 现在是我再这里说,以后再其他地方工作, ...
- bzoj4941: [Ynoi2016]镜子里的昆虫
维护每个位置x的上一个相等的位置pv[x],可以把询问表示成l<=x<=r,pv[x]<l的形式,对一次修改,均摊改变O(1)个pv的取值,因此可以用平衡树预处理出pv的变化,用cd ...
- PAT 乙级 1005 继续(3n+1)猜想 (25) C++版
1005. 继续(3n+1)猜想 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Callatz ...
- 学习笔记之pandas Foundations | DataCamp
pandas Foundations | DataCamp https://www.datacamp.com/courses/pandas-foundations Many real-world da ...
- Hbase物理模型设计
Hbase的存储结构 1.Hbase宏观架构 从上图可以看hbase集群由一个master和多个RegionServer组成,右下角是一个RegionServer的内部图. Hbase的服务器角色构成 ...
- go语言学习--go的临时对象池--sync.Pool
一个sync.Pool对象就是一组临时对象的集合.Pool是协程安全的. Pool用于存储那些被分配了但是没有被使用,而未来可能会使用的值,以减小垃圾回收的压力.一个比较好的例子是fmt包,fmt包总 ...
- [UE4]客户端-服务器模式
客户端负责表现.服务器端负责数据. 以掉血为例: 一.玩家A砍了B一刀 二.服务器计算伤害,修改B的血量 三.把B的血量发给B,A砍B的动作发给所有能看到的玩家 四.客户端播放掉血量(如果允许可见), ...
- CAP在MySQL的分析
此文转载在登博的文章,给大家分享 问题一:数据一致性.在不使用共享存储的情况下,传统RDBMS(例如:Oracle/MySQL/PostgreSQL等),能否做到在主库出问题时的数据零丢失. 问题二: ...
- Windows配置多个git用户
Window配置多个Git账户,SSH连接GitHub.GitLab 最新版本GIt配置对应多个Git仓库(不需要添加多个用户名和邮箱): 在本地git上添加一个用户名和邮箱,生成一对公钥和私钥,把公 ...
- 高通9X07模块QMI架构使用入门
QMI(Qualcomm Message Interface) 高通用来替代OneRPC/DM的协议,用来与modem通信.本文是摸索高通QMI机制一点经验,重点解读了如果建立拨号连接,仅供参考.qm ...