def setTweets(request): #body_unicode = request.body.decode('utf-8') #body = json.loads(body_unicode) #content = body['tweet'] #name = request.form['tweet'] twitter = createAuthObj() form = forms.Form(request.POST) content = form.data['tweet'] print(content) url = settings.TWITTER_CONFIG[ 'END_POINT'] + '/statuses/update.json?status=' + content response = twitter.post(url) return HttpResponse(response)
def del_company(request: WSGIRequest, company_pk: int) -> HttpResponse: company = get_object_or_404(Company, pk=company_pk) form = forms.Form(request.POST or None) if form.is_valid(): company.delete() return redirect("bags:main_index") context = { "company": company, "form": form, } return render(request, "bags/company/del_company.html", context)
def get_filter_form(self, data): """ Returns the filter form based on filter data. :param data: A dictionary with filters that should be used. :return: A filtering form for this report. """ form=forms.Form(data=data) for q in self.query_params: control = FilterControl.create_from_datatype(q[2],q[0],q[1]) fields = control.get_fields() form.fields.update(fields) form.full_clean() return form
def dispatch(request): if request.method == 'POST' and request.POST != {}: requestObject = request.POST form = forms.Form(requestObject) if 'csv' in request.POST or 'downloadstats' in request.POST: if form.is_valid(): try: context = {'searchValues': requestObject} csvformat, fieldset, csvitems = setupCSV( request, requestObject, context, prmz) loginfo('search', 'csv', context, request) # create the HttpResponse object with the appropriate CSV header. response = HttpResponse(content_type='text/csv') response[ 'Content-Disposition'] = 'attachment; filename="%s-%s.%s"' % ( prmz.CSVPREFIX, datetime.datetime.utcnow().strftime("%Y%m%d%H%M%S"), prmz.CSVEXTENSION) return writeCsv(response, fieldset, csvitems, writeheader=True, csvFormat=csvformat) except: messages.error(request, 'Problem creating .csv file. Sorry!') context['messages'] = messages return search(request) elif 'pdf' in request.POST: if form.is_valid(): try: context = {'searchValues': requestObject} loginfo('search', 'pdf', context, request) return setup4PDF(request, context, prmz) except: messages.error(request, 'Problem creating .pdf file. Sorry!') context['messages'] = messages return search(request) elif 'preview' in request.POST: messages.error(request, 'Problem creating print version. Sorry!', request) context = {'messages': messages} return search(request)
def test_field_title_quoting(): with translation.override("en"): field = forms.ModelMultipleChoiceField( queryset=User.objects.all(), help_text="Something about \"Control\"") field.choices = [] # Don't bother with database stuff assert "\"Control\"" in force_text(field.help_text) form = forms.Form() form.fields["field1"] = field form.fields["field2"] = forms.CharField(label="An Unrelated Field") assert ""Control"" in force_text( AdminFieldRenderer(form["field1"]).render()) assert "title=\"\"" not in force_text( AdminFieldRenderer(form["field2"]).render())
class ContextForm(ModelForm): hiddenValues = forms.Form() hiddenValues.fields['lat_position'] = forms.DecimalField( widget=forms.widgets.HiddenInput()) hiddenValues.fields['long_position'] = forms.DecimalField( widget=forms.widgets.HiddenInput()) distance = forms.IntegerField() class Meta: model = Context fields = [ 'companion', 'motivation', 'date', 'lat_position', 'long_position' ] exclude = ['date', 'weather'] def convert_grad_to_weather(self, grad): grad = int(grad) if grad <= 10: return 'VC' if ((grad > 10) and (grad <= 20)): return 'C' elif ((grad > 20) and (grad <= 25)): return 'A' elif ((grad > 25) and (grad <= 30)): return 'H' else: return 'VH' def save(self, request, commit=True): if request.user.is_authenticated(): user = request.user contexto = super(ContextForm, self).save(commit=False) yahoo_result = pywapi.get_weather_from_yahoo('BRXX3272') grad = yahoo_result['condition']['temp'] contexto.weather = self.convert_grad_to_weather(grad) contexto.lat_position = self.cleaned_data["lat_position"] contexto.long_position = self.cleaned_data["long_position"] distance = self.cleaned_data["distance"] if commit: contexto.save() CurrentContext.objects.filter(user=user).update(current=False) CurrentContext.objects.create(user=user, context=contexto, distance_max=distance) ctx = {'form': form} return distance else: return HttpResponse(u"precisa está logado")
def GetFormField(key, ModelField, **kwargs): ''' 由模型字段构造表单字段,供前端灵活使用 key 表单字段名称 ModelField 定义的模型字段 如: EmpPoPMultForeignKey 返回可直接供前端使用的表单字段 如: 选人控件 ''' from django import forms from dbapp.widgets import form_field form = forms.Form() m_formfield = form_field(ModelField, **kwargs) form.fields[key] = m_formfield return form[key]
def get_form(self): form_structure = FormSchema.objects.get( pk=self.kwargs["form_pk"] ).schema # convert json string to a python object which is a dict as well custom_form = forms.Form(**self.get_form_kwargs( )) # create an instance of the base django.forms.Form class for key, value in form_structure.items(): field_class = self.get_field_class_from_type(value) if field_class is not None: custom_form.fields[key] = field_class() else: raise TypeError("invalid field type {}".format(value)) return custom_form
def del_giveaway(request: WSGIRequest, giveaway_pk: int) -> HttpResponse: giveaway: Giveaway = get_object_or_404(Giveaway, id=giveaway_pk) form = forms.Form(request.POST or None) if form.is_valid(): giveaway.delete() return redirect("bags:list_grouped_giveaways") context = { "giveaway": giveaway, "form": form, } return render(request, "bags/giveaways/giveaway/del_giveaway.html", context=context)
def sign_in(request): if request.method == 'POST': form = forms.Form(request.POST) username = form.data['username'] password = form.data['password'] if User.objects.filter(username=username).count() == 0: messages.error(request, '无法在数据库中找到' + username + '的信息') return render(request, 'sign_in.html') if password != User.objects.get(username=username).password: messages.error(request, '密码错误') return render(request, 'sign_in.html') request.session['username'] = username return redirect('library:function') else: return render(request, 'sign_in.html')
def getHtmlForUserPreferences(self, user): # First fill data for all preferences data = {} for up in user.preferences.all().order_by('module'): data[self.__nameFor(up.module, up.name)] = up.value res = '' for mod, v in sorted(six.iteritems(self._prefs)): form = forms.Form() for p in v['prefs']: name = self.__nameFor(mod, p.getName()) val = data[name] if name in data else p.getDefValue() form.fields[name] = p.formField(val) res += '<fieldset class="prefset"><legend>' + v[ 'friendlyName'] + '</legend>' + form.as_p() + '</fieldset>' return res
def get(self, request, *args, **kwargs): if self.form_class: form = self.form_class(initial=self.initial) else: form = forms.Form() userProfile = None if request.user.is_authenticated: try: userProfile = UserProfile.objects.get(user=request.user) except UserProfile.DoesNotExist: userProfile = None return render(request, self.template_name, { 'form': form, 'userProfile': userProfile })
def del_participant(request: WSGIRequest, participant_pk: UUID) -> HttpResponse: participant = get_object_or_404(Participant, pk=participant_pk) form = forms.Form(request.POST or None) if form.is_valid(): participant.delete() return redirect("fahrt:main_index") context = { "form": form, "participant": participant, } return render(request, "fahrt/participants/del_participant.html", context)
def screenShot(request): if request.method == 'POST': myform = forms.Form(request.POST, request.FILES) if myform.is_valid(): print(myform.cleaned_data.keys()) config = ('-l eng --oem 1 --psm 3') text = pytesseract.image_to_string(Image.open( myform.files['screenshot']), config=config) emotion = predict(text) print(f"text : {text}") print(f"emotion : {emotion}") f = open("static/audiofy/emotion.txt", "w") f.write(emotion) f.close() return JsonResponse({"success": True}, status=200)
def update(request): if request.method == 'POST': form = forms.Form(request.POST) IMEI = form.data['IMEI'] if len(IMEI) != 32: messages.error(request, 'IMEI长度应为32位, 请重新输入') return render(request, 'ham/update.html') obj = Ham.objects.get(username=request.session['username']) if IMEI == obj.IMEI: messages.error(request, '新IMEI不能与旧IMEI相同') return render(request, 'ham/update.html') obj.IMEI = IMEI messages.success(request, 'IMEI更新成功,即将跳转到登录页面') return redirect(reverse('ham:sign_in')) else: return render(request, 'ham/update.html')
def test_markdown_widget(self): """test MarkdownWidget.render""" form = forms.Form() form.fields['test_field'] = forms.CharField( label='test', widget=MarkdownWidget ) template = Template( '{% load django_markdown %}<html>{{ form }}</html>' ) context = Context({'form': form}) html = template.render(context) self.assertIn('"previewParserPath": "/markdown/preview/"', html)
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._bound_fields_cache = {} initial = self.form.initial.get(self.name, self.field.initial) if isinstance(initial, CompositeType): initial = initial.__to_dict__() if self.form.is_bound: data = self.form.data else: data = None self.composite_form = forms.Form( data=data, initial=initial, prefix=self.form.add_prefix(self.name)) self.composite_form.fields = copy.deepcopy(self.field.fields)
def retrieveResults(request): if request.method == 'POST' and request.POST != {}: requestObject = request.POST form = forms.Form(requestObject) if form.is_valid(): context = {'searchValues': requestObject} context = doSearch(SOLRSERVER, SOLRCORE, context) global SEARCHRESULTS SEARCHRESULTS = context context = setConstants(context) loginfo('results.%s' % context['displayType'], context, request) return render(request, 'public_searchResults.html', context)
def bmapper(request): if request.method == 'POST' and request.POST != {}: requestObject = request.POST form = forms.Form(requestObject) if form.is_valid(): context = {'searchValues': requestObject} if 'kml' in request.path: response = setupKML(request, requestObject, context, prmz) loginfo('internal', 'kml', context, request) return response else: context = setupBMapper(request, requestObject, context, prmz) loginfo('internal', 'bmapper', context, request) return HttpResponse(context['bmapperurl'])
def render(self, context): request = context.get('request') if not request.user.is_staff: return '' template_name = context.get('template_name') placeholders = get_placeholders(template_name) page = context.get('current_page') lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE) form = forms.Form() for p in placeholders: field = p.get_field(page, lang) form.fields[p.name] = field link = '<link href="{}" type="text/css" media="all" rel="stylesheet" />'.format( static('pages/css/inline-edit.css')) return "{}{}".format(form.media, link)
def invoice_form(self): if not self.address_asked and self.request.event.settings.invoice_name_required: return self.invoice_name_form_class( data=self.request.POST if self.request.method == "POST" else None, event=self.request.event, instance=self.invoice_address, validate_vat_id=False, all_optional=self.all_optional ) if self.address_asked: return self.invoice_form_class( data=self.request.POST if self.request.method == "POST" else None, event=self.request.event, instance=self.invoice_address, validate_vat_id=False, all_optional=self.all_optional, ) else: return forms.Form(data=self.request.POST if self.request.method == "POST" else None)
def renew(request): user = User.objects.get(username=request.session['username']) books = user.books.all() if request.method == 'POST': form = forms.Form(request.POST) id = form.data['id'] if not id: messages.error(request, '图书ID不可为空!') return redirect(reverse('library:renew')) if books.filter(id=id).count() == 0: messages.error(request, '您未借阅ID为' + str(id) + '的图书') return redirect('library:renew') book = Book.objects.get(id=id) return_date = book.return_date today = timezone.localdate() if book.status == '续借': messages.error(request, '您已续借过该图书,无法连续续借') return redirect('library:renew') if return_date > today: book.status = '续借' borrower = User.objects.get(username=request.session['username']) book.borrower = borrower return_date = timezone.datetime.now() + timezone.timedelta(days=7) book.return_date = return_date.strftime("%Y-%m-%d") book.save() messages.error( request, '已成功续借《' + book.name + '》请在' + book.return_date + '之前归还图书') return redirect('library:function') else: messages.error(request, '抱歉,您未在规定时间内归还该图书,已失去该图书的续借资格') return redirect('library:renew') else: data = [[] for _ in range(len(books))] for i in range(len(books)): item = books[i] data[i].append(str(item.name)) data[i].append(str(item.id)) data[i].append(str(item.publish_house)) data[i].append(str(item.release_date)) data[i].append(str(item.author)) data[i].append(item.category) data[i].append(item.status) data[i].append(str(item.return_date)) return render(request, 'renew.html', {'data': data})
def mailer_synchronization_view(request): if request.method == "POST": try: sync_result = synchronize(settings.MAILER) notification = bread.layout.components.notification.InlineNotification( _("Sychronization successful"), _("Synchronized with mailer segment containing %s contacts. %s new persons were added to BasxConnect." ) % ( sync_result.total_synchronized_persons, sync_result.persons.filter( sync_status=SynchronizationPerson.NEW).count(), ), kind="success", ) except Exception: notification = bread.layout.components.notification.InlineNotification( "Error", f"An error occured during synchronization. {traceback.format_exc()}", kind="error", ) else: notification = None help_modal = sync_help_modal() return hg.BaseElement( Form( forms.Form(), bread.layout.grid.Grid( hg.H3(_("Synchronization of Email Subcriptions")), notification, gutter=False, ), help_modal, layout.forms.helpers.Submit(_("Download subscriptions"), style="display: inline-block;"), layout.button.Button( _("Help"), buttontype="ghost", style="margin-left: 1rem", icon="help", **help_modal.openerattributes, ), ), display_previous_execution(request), )
def get_form(self, data=None): form = forms.Form(data) form.fields['poll'] = \ forms.CharField(widget=forms.HiddenInput, initial=self.pk) for question in self.questions.all(): if question.multi_choice: form.fields['question_%d' % question.pk] = \ forms.ModelMultipleChoiceField(label=question.question, queryset=question.answers, error_messages={'required': u'Пожалуйста, выберите вариант ответа'}, widget=forms.CheckboxSelectMultiple) else: form.fields['question_%d' % question.pk] = \ forms.ModelChoiceField(label=question.question, queryset=question.answers, empty_label=None, error_messages={'required': u'Пожалуйста, выберите вариант ответа'}, widget=forms.RadioSelect) return form
def get_filter_form(self, request): """Retrieves naive filter based upon list_filter and the queryset model fields.. will not follow __ relations i think""" # TODO iterate through list filter and create appropriate widget and prefill from request form = forms.Form(data=request.REQUEST) for f in self.list_filter: # Allow specification of custom filter control, or specify field name (and label?) if isinstance(f, FilterControl): control = f else: mfi, mfm = get_lookup_field(self.queryset.model, self.queryset.model, f) # TODO allow label as param 2 control = FilterControl.create_from_modelfield(mfi, f) if control: fields = control.get_fields() form.fields.update(fields) form.full_clean() return form
def statistics(request): if request.method == 'POST' and request.POST != {}: requestObject = request.POST form = forms.Form(requestObject) if form.is_valid(): elapsedtime = time.time() try: context = {'searchValues': requestObject} loginfo('internal', 'statistics1', context, request) context = computeStats(request, requestObject, context, prmz) loginfo('internal', 'statistics2', context, request) context['summarytime'] = '%8.2f' % (time.time() - elapsedtime) # 'downloadstats' is handled in writeCSV, via post return render(request, 'statsResults.html', context) except: context['summarytime'] = '%8.2f' % (time.time() - elapsedtime) return HttpResponse('Please pick some values!')
def test_percentage_field(): field = PercentageField(min_value=0, max_value=Decimal("0.7")) assert Decimal(str(field.widget.attrs["max"])) == 70 assert field.to_python("50") == Decimal("0.5") assert field.to_python(50) == Decimal("0.5") assert field.to_python(500) == Decimal(5) assert field.to_python("") is None assert field.prepare_value(Decimal("0.50")) == 50 with pytest.raises(ValidationError): field.clean(-7) # --> -0.07 (< min_value) with pytest.raises(ValidationError): field.clean("700") # -> 7 (> max_value) frm = forms.Form(data={"x": "15"}) frm.fields["x"] = field frm.full_clean() assert frm.cleaned_data["x"] == Decimal("0.15")
def render(self, form, request, step, context=None): "Renders the given Form object, returning an HttpResponse." old_data = request.POST prev_fields = [] if old_data: for i in range(step): old_form = self.get_form(i, old_data) hash_name = 'hash_%s' % i if isinstance(old_form, BaseFormSet): for _form in old_form.forms + [old_form.management_form]: prev_fields.extend([bf for bf in _form]) else: prev_fields.extend([bf for bf in old_form]) hash_field = forms.Field(initial=old_data.get( hash_name, self.security_hash(request, old_form))) bf = BoundField(forms.Form(), hash_field, hash_name) prev_fields.append(bf) return self.render_template(request, form, prev_fields, step, context)
def csv(request): if request.method == 'POST' and request.POST != {}: requestObject = request.POST form = forms.Form(requestObject) if form.is_valid(): # context = {'searchValues': requestObject} # context = doSearch(SOLRSERVER, SOLRCORE, context) context = SEARCHRESULTS # Create the HttpResponse object with the appropriate CSV header. response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="%s-%s.%s"' % (CSVPREFIX,datetime.datetime.utcnow().strftime("%Y%m%d%H%M%S"),CSVEXTENSION) #response.write(u'\ufeff'.encode('utf8')) writeCsv(response, context['items'], writeheader=True) loginfo('csv', context, request) return response
def facetJSON(request): if request.method == 'GET' and request.GET != {}: requestObject = dict(request.GET.iteritems()) form = forms.Form(requestObject) if form.is_valid(): context = {'searchValues': requestObject} context = doSearch(context, prmz, request) loginfo(logger, 'results.%s' % context['displayType'], context, request) #del context['FIELDS'] #del context['facets'] if not 'items' in context: return accesscontrolalloworigin(json.dumps('error')) else: return accesscontrolalloworigin(json.dumps({'facets': context['facets'],'fields': context['fields']})) else: return accesscontrolalloworigin(json.dumps('no data seen'))