def get_geo(address):
result = (None, None)
if address.replace(',', '').strip():
address = quote(address.lower().encode("utf-8"))
sensor = "false"
url = '{url}?address={address}&sensor={sensor}'.format(url=settings.GOOGLE_GEOCODE_ENDPOINT,
address=address,
sensor=sensor)
response = requests.get(url)
response.raise_for_status()
result = response.json()
if result['status'] == 'OK':
lat = str(result['results'][0]['geometry']['location']['lat'])
lng = str(result['results'][0]['geometry']['location']['lng'])
result = (lat, lng)
else:
result = (None, None)
return result
python类quote()的实例源码
def revision_view(self, request, object_id, version_id, extra_context=None):
if not is_installed('reversion'):
return HttpResponseBadRequest('django reversion not installed')
if not self.has_change_permission(request, Page.objects.get(pk=object_id)):
raise PermissionDenied
page = get_object_or_404(self.model, pk=object_id)
if not page.publisher_is_draft:
page = page.publisher_draft
if not page.has_change_permission(request):
return HttpResponseForbidden(force_text(_("You do not have permission to change this page")))
try:
version = Version.objects.get(pk=version_id)
clean = page._apply_revision(version.revision, set_dirty=True)
if not clean:
messages.error(request, _("Page reverted but slug stays the same because of url collisions."))
with create_revision():
adapter = self.revision_manager.get_adapter(page.__class__)
self.revision_context_manager.add_to_context(self.revision_manager, page, adapter.get_version_data(page))
self.revision_context_manager.set_comment(_("Reverted to previous version, saved on %(datetime)s") % {"datetime": localize(version.revision.date_created)})
except IndexError as e:
return HttpResponseBadRequest(e.message)
return HttpResponseRedirect(admin_reverse('cms_page_change', args=(quote(object_id),)))
def get_buttons_for_obj(self, obj, exclude=None, classnames_add=None,
classnames_exclude=None):
if exclude is None:
exclude = []
if classnames_add is None:
classnames_add = []
if classnames_exclude is None:
classnames_exclude = []
ph = self.permission_helper
usr = self.request.user
pk = quote(getattr(obj, self.opts.pk.attname))
btns = []
if ph.user_can_inspect_obj(usr, obj):
btns.append(self.detail_button(
pk, classnames_add, classnames_exclude))
btns.append(self.cancel_button(
pk, classnames_add, classnames_exclude))
return btns
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def report_button(self, pk, classnames_add=[], classnames_exclude=[]):
classnames = classnames_add
cn = self.finalise_classname(classnames, classnames_exclude)
return {
'url': reverse('experiments:report', args=(quote(pk), )),
'label': _('Show report'),
'classname': cn,
'title': _('Report for this %s') % self.verbose_name,
}
def get_buttons_for_obj(self, obj, exclude=[], classnames_add=[],
classnames_exclude=[]):
ph = self.permission_helper
pk = quote(getattr(obj, self.opts.pk.attname))
btns = super(ExperimentButtonHelper, self).get_buttons_for_obj(obj, exclude, classnames_add, classnames_exclude)
if 'report' not in exclude and ph.user_can_edit_obj(self.request.user, obj):
btns.append(
self.report_button(pk, classnames_add, classnames_exclude)
)
return btns
def url_for_result(self, result):
pk = getattr(result, self.pk_attname)
return reverse(
'admin:%s_%s_change' % (result._meta.app_label, result._meta.model_name),
args=(quote(pk),),
current_app=self.model_admin.admin_site.name
)
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def get_admin_url(self):
"""
Returns the admin URL to edit the object represented by this log entry.
"""
if self.content_type and self.object_id:
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
try:
return reverse(url_name, args=(quote(self.object_id),))
except NoReverseMatch:
pass
return None
def admin_urlquote(value):
return quote(value)
def url_for_result(self, result):
pk_attname = result._meta.pk.attname
pk = getattr(result, pk_attname)
return reverse('admin:%s_%s_change' % (result._meta.app_label,
result._meta.model_name),
args=(quote(pk),),
current_app=self.model_admin.admin_site.name)