def node(): nodes = network_info() form = NodeForm() if request.method == "POST": if form.validate() == False: return render_template("node.html", form=form, nodes=nodes) else: name = form.name.data humdity = form.humdity.data temperature = form.temperature.data mode = form.mode.data if mode: protocol = "cord" else: protocol = "rott" eid = session['current_experiment'] print("name: " + str(name) + " humdity: " + str(humdity) + " temperature: " + str(temperature) + " mode:" + str(mode)) node = Node(eid=eid, name=name, humdity=humdity, temperature=temperature, protocol=protocol) db.session.add(node) db.session.commit() return redirect(url_for("node")) elif request.method == "GET": return render_template("node.html", form=form, nodes=nodes)
def bbs_add_node(): form = NodeForm(request.form) form.section.query_factory = Section.query.all if request.method == 'POST' and form.validate(): section = form.data["section"] print section, type(section) if not section: form.section.errors.append(u"Section不存在!") return render_template("add_node.html", form=form) node = Node(section=section, name=form.data["node_name"].strip(), title=form.data["node_title"], descp=form.data["descp"], item_per_page=form.data["item_per_page"], header=form.data["header"], footer=form.data["footer"], sidebar=form.data["sidebar"], sidebar_ads=form.data["sidebar_ads"], avatar_url=form.data["avatar_url"]) node.created = datetime.now() section.node_count += 1 db.session.add_all([node, section]) db.session.commit() return redirect(url_for(".bbs_node", node_name=urllib.quote(node.name))) return render_template("add_node.html", form=form)
def post(self): user = self.current_user form = NodeForm(self.request.arguments) if form.validate(): node = form.save(user) return self.redirect(node.url) return self.render("node/create.html", form=form)
def post(self): if not self.has_permission: return if not self.current_user.is_admin: return self.redirect_next_url() user = self.current_user form = NodeForm(self.request.arguments) if form.validate(): node = form.save(user) return self.redirect(node.url) return self.render("node/create.html", form=form)
def add(request): #获取来自NodeForm的表单数据 form = NodeForm(request.POST or None) #判断form是否有效 if form.is_valid(): #创建实例,需要做些数据处理,暂不做保存 instance = form.save(commit=False) #将登录用户作为登记人 instance.node_signer = request.user #保存该实例 instance.save() #跳转至列表页面 return redirect('/lists/') #创建context来集中处理需要传递到页面的数据 context = { 'form': form, } #如果没有有效提交,则仍留在原来页面 return render(request, 'add.html', context)
def edit(request, table, pk): if table == 'line': #这是Django的一个快捷方法,通过pk去line表中取值,如果有值则返回,如果无值则抛出http404的异常 #具体信息可参考https://docs.djangoproject.com/en/1.9/topics/http/shortcuts/ table_ins = get_object_or_404(Line, pk=pk) #通过instance来将Form的数据做填充 form = LineForm(request.POST or None, instance=table_ins) sub_title = '修改线路信息' if table == 'node': table_ins = get_object_or_404(Node, pk=pk) form = NodeForm(request.POST or None, instance=table_ins) sub_title = '修改机构信息' if table == 'device': table_ins = get_object_or_404(Device, pk=pk) form = DeviceForm(request.POST or None, instance=table_ins) sub_title = '修改设备信息' #判断form是否有效 if form.is_valid(): #创建实例,需要做些数据处理,暂不做保存 instance = form.save(commit=False) #将登录用户作为登记人,在修改时,一定要使用str强制 if table == 'node': instance.node_signer = str(request.user) if table == 'line': instance.line_signer = str(request.user) if table == 'device': instance.device_signer = str(request.user) #保存该实例 instance.save() #跳转至列表页面,配合table参数,进行URL的反向解析 return redirect('lists', table=table) context = { 'table': table, 'form': form, 'page_title': '基础资料', 'sub_title': sub_title, } #与res_add.html用同一个页面,只是edit会在res_add页面做数据填充 return render(request, 'res_add.html', context)
def add(request, table): #根据提交的请求不同,获取来自不同Form的表单数据 if table == 'node': form = NodeForm(request.POST or None) sub_title = '添加节点' if table == 'line': form = LineForm(request.POST or None) sub_title = '添加线路' if table == 'device': form = DeviceForm(request.POST or None) sub_title = '添加设备' #判断form是否有效 if form.is_valid(): #创建实例,需要做些数据处理,暂不做保存 instance = form.save(commit=False) #将登录用户作为登记人 if table == 'node': instance.node_signer = request.user if table == 'line': instance.line_signer = request.user if table == 'device': instance.device_signer = request.user #保存该实例 instance.save() #跳转至列表页面,配合table参数,进行URL的反向解析 return redirect('lists', table=table) #创建context来集中处理需要传递到页面的数据 context = { 'form': form, 'table': table, 'page_title': '基础资料', 'sub_title': sub_title, } #如果没有有效提交,则仍留在原来页面 return render(request, 'res_add.html', context)
def writenextnode(request, parentid): parentnode = findNode(parentid) form = NodeForm(request.POST) return render_to_response("writinganewnode.html", {'form': form, 'parentnode': parentnode}, context_instance=RequestContext(request))