def edit_device(request, id=None): context = { 'page_title': u'Dispositivos', 'edit_name': 'device', 'has_back': False, 'features': get_user_features(request) } t = get_template('edit.html') device = None form = DeviceForm() try: if request.method == 'POST': form = DeviceForm(request.POST) if form.is_valid(): cd = form.cleaned_data device = _save_device(cd) messages.success(request, 'Dispositivo salvo com sucesso.') form = DeviceForm(initial={}) elif id: device = Device.objects.get(id=id) initial = device.__dict__ initial['category'] = device.category.id form = DeviceForm(initial=initial) except Exception as e: log.error(e) messages.error( request, u'Ocorreu um erro ao processar a requisição, por favor tente novamente.' ) context = _set_device_form_context(device, form, context) return render_to_response('edit.html', context, context_instance=RequestContext(request))
def edit(id): my_devices = devices.show(g.url_rest + "/" + id) form = DeviceForm.from_json(my_devices) if form.is_submitted(): devices.edit(g.url_rest + "/" + id, DeviceForm(obj=devices)) return redirect(url_for("devices.list")) return render_template('device_edit.html', devices=my_devices, form=form)
def add(): form = DeviceForm() if request.method == 'POST' and form.validate_on_submit(): devices.add(g.url_rest, form) flash('Device added') return redirect(url_for('devices.list')) return render_template('device_add.html', form=form)
def addDevice(): form = DeviceForm() devices = Device.get_by_user(current_user.id) if form.validate_on_submit(): name = form.name.data tipodispositivo = form.tipodispositivo.data macaddress = form.macaddress.data id = current_user.get_id() device = Device(user_id=id, name=name, tipodispositivo=tipodispositivo, macaddress=macaddress) device.save() return redirect(url_for('index')) return render_template('addDevice_form.html', form=form, devices=devices)
def post(self, request, **kwargs): """ Creates a new device or updates an existing one to `is_active=True`. Expects two non-options POST parameters: `token` and `service`. """ devices = DeviceToken.objects.filter(token=request.POST.get('token'), service__id=int(request.POST.get('service', 0))) if devices.exists(): device = devices.get() device.is_active = True device.save() return JSONResponse(device) form = DeviceForm(request.POST) if form.is_valid(): device = form.save(commit=False) device.is_active = True device.save() return JSONResponse(device, status=201) return JSONResponse(form.errors, status=400)
def add_device(): check_admin() add_device = True form = DeviceForm() if form.validate_on_submit(): device = Device(name=form.name.data, description=form.description.data, ip=form.ip.data) try: db.session.add(device) db.session.commit() flash('You have successfully added a new device.') except: flash('Error: device name already exists.') return redirect(url_for('admin.list_devices')) return render_template('admin/devices/device.html', action="Add", add_device=add_device, form=form, title="Add Device")
def register_device(): form = DeviceForm() if form.validate_on_submit(): data = { "name": form.name.data, "role": form.role.data, "password": form.password.data, "ip": form.ip.data } url = "{}/{}".format(api_url, "devices") r = requests.post(url, json=data) result = r.json()["result"] if result == "Done": flash(result, 'success') else: flash(result, "danger") return redirect(url_for('home')) return render_template('device_register.html', title='DeviceRegister', form=form)
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)