def get_redirect_patterns(): """ Gets the redirect patterns out of the database and assigns them to the django patterns object. """ redirects = Redirect.objects.filter(status=True).order_by("uses_regex") url_patterns = [] url_list = [] for redirect in redirects: extra = {} # use urlquote so we can support '?' in the redirect if not redirect.uses_regex: pattern = r"^%s/?$" % urlquote(redirect.from_url) else: pattern = r"^%s/?$" % redirect.from_url if "http" in redirect.to_url: extra.update({"url": "%s" % redirect.to_url}) elif "https" in redirect.to_url: extra.update({"url": "%s" % redirect.to_url}) else: extra.update({"url": "/%s" % redirect.to_url}) if redirect.http_status == 302: extra.update({"permanent": False}) url_list.append(url(pattern, RedirectView.as_view(**extra))) else: url_list.append(url(pattern, RedirectView.as_view(**extra))) arg_groups = list(group_aruments(url_list)) for args in arg_groups: url_patterns += patterns("", *args) return url_patterns
def django_urls(): urlpatterns = [] url_list = Url.objects.filter(enabled=True) for the_url in url_list: regex = the_url.url type = the_url.type view = the_url.destination if type == 'exact_to_redirect': regex = r'^{0}$'.format(regex) # URI scheme check if not '://' in view: # relative redirect view = '/{0}'.format(view) urlpatterns += patterns('', url(regex, RedirectView.as_view(url=view, permanent=False)),) elif type == 'exact_to_view': regex = r'^{0}$'.format(regex) urlpatterns += patterns('', url(regex, view),) elif type == 'regex_to_redirect': # URI scheme check if not '://' in view: # relative redirect view = '/{0}'.format(view) urlpatterns += patterns('', url(regex, RedirectView.as_view(url=view, permanent=False)),) elif type == 'regex_to_view': urlpatterns += patterns('', url(regex, view),) else: continue return urlpatterns
def get_urls(self): urls = super(MenuAdmin, self).get_urls() my_urls = patterns('', (r'^(?P<menu_pk>[-\w]+)/items/add/$', self.admin_site.admin_view(self.add_menu_item)), (r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/$', self.admin_site.admin_view(self.edit_menu_item)), (r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/delete/$', self.admin_site.admin_view(self.delete_menu_item)), (r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/history/$', self.admin_site.admin_view(self.history_menu_item)), (r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_up/$', self.admin_site.admin_view(self.move_up_item)), (r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_down/$', self.admin_site.admin_view(self.move_down_item)), ) if django.VERSION >= (1, 4): # Dummy named URLs to satisfy reversing the reversing requirements # of the menuitem add/change views. It shouldn't ever be used; it # just needs to exist so that it get resolved internally by the # django admin. from django.views.generic import RedirectView my_urls += patterns('', url(r'^item_changelist/$', RedirectView.as_view(url='/'), name='treemenus_menuitem_changelist'), url(r'^item_add/$', RedirectView.as_view(url='/'), name='treemenus_menuitem_add'), ) return my_urls + urls
def redirect_urlpatterns(): """ Helper function to return a URL pattern for index page http://host/. """ if settings.INDEX_TEMPLATE is None: return patterns('', url(r'^$', never_cache(RedirectView.as_view(url=reverse_lazy('webindex'))), name="index" )) else: return patterns('', url( r'^$', never_cache(RedirectView.as_view(url=reverse_lazy('webindex_custom'))), name="index" ),)
def test_include_args(self): "GET arguments can be included in the redirected URL" response = RedirectView.as_view(url='/bar/')(self.rf.get('/foo/')) self.assertEqual(response.status_code, 301) self.assertEqual(response['Location'], '/bar/') response = RedirectView.as_view(url='/bar/', query_string=True)(self.rf.get('/foo/?pork=spam')) self.assertEqual(response.status_code, 301) self.assertEqual(response['Location'], '/bar/?pork=spam')
def test_include_args(self): "GET arguments can be included in the redirected URL" response = RedirectView.as_view(url="/bar/")(self.rf.get("/foo/")) self.assertEqual(response.status_code, 301) self.assertEqual(response.url, "/bar/") response = RedirectView.as_view(url="/bar/", query_string=True)(self.rf.get("/foo/?pork=spam")) self.assertEqual(response.status_code, 301) self.assertEqual(response.url, "/bar/?pork=spam")
def get_urls(self): urls = patterns('', url(r'^$', RedirectView.as_view(url=reverse_lazy('builder-index')), name="formunculous_form_changelist", ), url(r'^add/$', RedirectView.as_view(url=reverse_lazy('builder-add-ad')), name="formunculous_form_add", ) ) return urls
def get_urls(self): urls = super(MenuAdmin, self).get_urls() my_urls = patterns( "", (r"^(?P<menu_pk>[-\w]+)/items/add/$", self.admin_site.admin_view(self.add_menu_item)), (r"^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/$", self.admin_site.admin_view(self.edit_menu_item)), ( r"^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/delete/$", self.admin_site.admin_view(self.delete_menu_item), ), ( r"^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/history/$", self.admin_site.admin_view(self.history_menu_item), ), ( r"^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_up/$", self.admin_site.admin_view(self.move_up_item), ), ( r"^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_down/$", self.admin_site.admin_view(self.move_down_item), ), ) if django.VERSION >= (1, 4): # Dummy named URLs to satisfy reversing the reversing requirements # of the menuitem add/change views. It shouldn't ever be used; it # just needs to exist so that it get resolved internally by the # django admin. my_urls += patterns( "", url(r"^item_changelist/$", RedirectView.as_view(url="/"), name="treemenus_menuitem_changelist"), url(r"^item_add/$", RedirectView.as_view(url="/"), name="treemenus_menuitem_add"), url( r"^item_history/(?P<pk>[-\w]+)/$", self.menu_item_redirect, {"action": "history"}, name="treemenus_menuitem_history", ), url( r"^item_delete/(?P<pk>[-\w]+)/$", self.menu_item_redirect, {"action": "delete"}, name="treemenus_menuitem_delete", ), ) return my_urls + urls
def test_include_urlencoded_args(self): "GET arguments can be URL-encoded when included in the redirected URL" response = RedirectView.as_view( url='/bar/', query_string=True)(self.rf.get('/foo/?unicode=%E2%9C%93')) self.assertEqual(response.status_code, 301) self.assertEqual(response['Location'], '/bar/?unicode=%E2%9C%93')
def get_urls(self): try: # Prevent deprecation warnings on Django >= 1.4 from django.conf.urls import patterns, url except ImportError: # For compatibility with Django <= 1.3 from django.conf.urls.defaults import patterns, url def wrap(view): def wrapper(*args, **kwargs): return self.admin_site.admin_view(view)(*args, **kwargs) return update_wrapper(wrapper, view) # Django <= 1.6 uses "module_name"; Django >= 1.7 uses "model_name" try: model_name = self.model._meta.model_name except AttributeError: model_name = self.model._meta.module_name info = self.model._meta.app_label, model_name urlpatterns = super(SingletonModelAdmin, self).get_urls() urlpatterns = patterns('', url(r'^/$', RedirectView.as_view(url=reverse_lazy('admin:%s_%s_change' % info)), name='%s_%s_changelist' % info), url(r'^history/$', wrap(self.history_view), {'object_id': '1'}, name='%s_%s_history' % info), url(r'^1/$', wrap(self.change_view), {'object_id': '1'}, name='%s_%s_changelist' % info), ) + urlpatterns return urlpatterns
def get_urls(self): from django.conf.urls import url urlpatterns = super(ShowModelAdminMixin, self).get_urls() # Replace the redirect pattern to go to show instead of change for pattern in urlpatterns: if pattern.regex.pattern == '^(.+)/$': urlpatterns.remove(pattern) def wrap(view): def wrapper(*args, **kwargs): return self.admin_site.admin_view(view)(*args, **kwargs) wrapper.model_admin = self return update_wrapper(wrapper, view) info = self.model._meta.app_label, self.model._meta.model_name urlpatterns = [ url(r'^(.+)/show/$', wrap(self.admin_site.admin_view(self.show_view)), name='%s_%s_show' % info), ] + urlpatterns + [ url(r'^(.+)/$', wrap(RedirectView.as_view( pattern_name='%s:%s_%s_show' % ((self.admin_site.name,) + info) ))), ] return urlpatterns
def get_urls(self): try: from django.conf.urls import url # >= 1.4 except ImportError: from django.conf.urls.defaults import url def wrap(view): def wrapper(*args, **kwargs): return self.admin_site.admin_view(view)(*args, **kwargs) return update_wrapper(wrapper, view) try: info = self.model._meta.app_label, self.model._meta.model_name # >= 1.6 except AttributeError: info = self.model._meta.app_label, self.model._meta.module_name urlpatterns = super(SingletonModelAdmin, self).get_urls() urlpatterns = [ url(r'^/$', RedirectView.as_view(url=reverse_lazy('admin:%s_%s_change' % info)), name='%s_%s_changelist' % info), url(r'^history/$', wrap(self.history_view), {'object_id': '1'}, name='%s_%s_history' % info), url(r'^1/$', wrap(self.change_view), {'object_id': '1'}, name='%s_%s_changelist' % info), ] + urlpatterns return urlpatterns
def get_urls(self): """Add extra views for downloading a blank datasheet, and uploading a completed datasheet. """ urls = super(VisitAdmin, self).get_urls() app, mdl = self.model._meta.app_label, self.model._meta.model_name custom_urls = [ # url(r'^(\d+)/download-datasheet/$', # self.admin_site.admin_view(self.download_datasheet), # name='{}_{}_download_datasheet'.format(app, mdl)), url( r"^(?P<pk>\d+)/download-datasheet/$", RedirectView.as_view(pattern_name="download_visit_datasheet", permanent=False), name="{}_{}_download_datasheet".format(app, mdl), ), url( r"^(\d+)/upload-datasheet/$", self.admin_site.admin_view(self.upload_datasheet), name="{}_{}_upload_datasheet".format(app, mdl), ), url( r"^(\d+)/confirm_datasheet_upload/(\d+)/$", self.admin_site.admin_view(self.confirm_datasheet_upload), name="{}_{}_confirm_datasheet_upload".format(app, mdl), ), ] return custom_urls + urls
def index(regex, manifest, adapter, view_class=IndexView): '''Create URL pattern for Ember application. Ember application will be accessible at these paths (prefixed with `regex`): 1. `/` , 2. `/r/:revision/`, 3. `/r/current/`, which redirects to `/`. Keyword arguments: regex (string): A regex from Ember application is served. manifest (string): A name of Ember application. adapter (object): An adapter for index provider. view_class (ember_index.views.IndexView): An index view (default IndexView). Returns: An URL pattern for Ember application. ''' view = view_class.as_view(manifest=manifest, adapter=adapter, regex=regex) redirect = RedirectView.as_view(pattern_name=manifest, permanent=False) return url(regex, include([ url(r'^r/current', redirect), url(r'^r/(?P<revision>\w+)', view), url(r'^', view, name=manifest) ]))
def evaluate(self): if isinstance(self.action, basestring): redirect_url_name = self.action reverse_kw = dict() if self._options.get('app_name'): reverse_kw.update({ 'current_app': self._options.get('app_name'), }) if len(self._kwargs) > 0: reverse_kw.update({ 'kwargs': self._kwargs, }) elif len(self._args) > 0: reverse_kw.update({ 'args': self._args, }) ''' self._kwargs = dict( url=reverse_lazy( redirect_url_name, **reverse_kw)) ''' self.action = RedirectView.as_view( url=reverse_lazy( redirect_url_name, **reverse_kw), permanent=False) return super(ReverseRedirect, self).evaluate()
def test_parameter_substitution(self): "Redirection URLs can be parameterized" response = RedirectView.as_view( url='/bar/%(object_id)d/')(self.rf.get('/foo/42/'), object_id=42) self.assertEqual(response.status_code, 301) self.assertEqual(response['Location'], '/bar/42/')
def django_urls(): urlpatterns = [] url_list = Url.objects.filter(enabled=True) for the_url in url_list: regex = the_url.url type = the_url.type view = the_url.destination # Exact matches if type in ['exact_to_view', 'exact_to_temporary_redirect', 'exact_to_permanent_redirect',]: regex = r'^{0}$'.format(regex) # Views if type in ['regex_to_view', 'exact_to_view',]: urlpatterns += patterns('', url(regex, view),) # Redirects elif type in ['regex_to_temporary_redirect', 'regex_to_permanent_redirect', 'exact_to_temporary_redirect', 'exact_to_permanent_redirect',]: permanent = False if type in ['regex_to_permanent_redirect', 'exact_to_permanent_redirect',]: permanent = True # Make url relative if needed by checking URI scheme if not '://' in view: view = '/{0}'.format(view) urlpatterns += patterns('', url(regex, RedirectView.as_view(url=view, permanent=permanent)),) else: continue return urlpatterns
def evaluate(self): if isinstance(self.action, basestring): redirect_url = self.action self.action = RedirectView.as_view( url=redirect_url, permanent=False) return super(Redirect, self).evaluate()
def url_patterns(self): return [ url(r'^$', RedirectView.as_view(url=reverse_lazy(self.url_namespace + ':books')), name='index'), url(r'^books/$', permission_required('common.purchase_sell_books')(self.books), name='books'), url(r'^summary/$', permission_required('common.purchase_sell_books')(self.summary), name='summary'), ]
def test_no_deprecation_warning_when_permanent_passed(self): with warnings.catch_warnings(record=True) as warns: warnings.simplefilter('always') view_function = RedirectView.as_view(url='/bar/', permanent=False) request = self.rf.request(PATH_INFO='/foo/') view_function(request) self.assertEqual(len(warns), 0)
def krb5login(request, redirect_field_name=REDIRECT_FIELD_NAME): #middleware = 'django.contrib.auth.middleware.RemoteUserMiddleware' middleware = 'kobo.django.auth.middleware.LimitedRemoteUserMiddleware' if middleware not in settings.MIDDLEWARE_CLASSES: raise ImproperlyConfigured("krb5login view requires '%s' middleware installed" % middleware) redirect_to = request.REQUEST.get(redirect_field_name, "") if not redirect_to: redirect_to = reverse("home/index") return RedirectView.as_view(url=redirect_to)(request)
def secure_redirect(request, page): """ Redirects to the correct path on secure.my.jobs if this is not a network site, or 404 if it is. """ if settings.SITE.site_tags.filter(site_tag='network').exists(): return RedirectView.as_view( url='https://secure.my.jobs/%s' % page)(request) else: raise Http404
def get_urls(self): urls = super(MenuAdmin, self).get_urls() my_urls = [ url(r'^(?P<menu_pk>[-\w]+)/items/add/$', self.admin_site.admin_view(self.add_menu_item)), url(r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/$', self.admin_site.admin_view(self.edit_menu_item)), url(r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/delete/$', self.admin_site.admin_view(self.delete_menu_item)), url(r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/history/$', self.admin_site.admin_view(self.history_menu_item)), url(r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_up/$', self.admin_site.admin_view(self.move_up_item)), url(r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_down/$', self.admin_site.admin_view(self.move_down_item)), ] if django.VERSION >= (1, 4): # Dummy named URLs to satisfy reversing the reversing requirements # of the menuitem add/change views. It shouldn't ever be used; it # just needs to exist so that it get resolved internally by the # django admin. my_urls += [ url(r'^item_changelist/$', RedirectView.as_view(url='/', permanent=True), name='treemenus_menuitem_changelist'), url(r'^item_add/$', RedirectView.as_view(url='/', permanent=True), name='treemenus_menuitem_add'), url(r'^item_history/(?P<pk>[-\w]+)/$', self.menu_item_redirect, {'action': 'history'}, name='treemenus_menuitem_history'), url(r'^item_delete/(?P<pk>[-\w]+)/$', self.menu_item_redirect, {'action': 'delete'}, name='treemenus_menuitem_delete'), url(r'^(.+)/item_change/$', self.menu_item_change_redirect, name='treemenus_menuitem_change'), ] return my_urls + urls
def _get_urls(tenant_slug): # Note, need 'tuple' here otherwise url stuff blows up return tuple( patterns( '', (r'^$', RedirectView.as_view( pattern_name='ditto:home', permanent=True, )), url(r'^%s/' % tenant_slug, include('network_urls')), url(r'^main/', include('multitenancy.urls', namespace="ditto")), ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT))
def profiles_urlpatterns(AdModel, AdSearchModel): urlpatterns = patterns('', url(r'^accounts/profile/$', RedirectView.as_view(url=reverse_lazy('search'))), url(r'^accounts/(?P<slug>(?!signout|signup|signin)[\.\w]+)/$', UserProfileDetailView.as_view(ad_model=AdModel, ad_search_model=AdSearchModel), name='userena_profile_detail'), url(r'^accounts/(?P<username>[\.\w]+)/edit/$', userena_views.profile_edit, {'template_name': 'userena/profile_form.html', 'edit_profile_form': UserProfileCustomForm}, name='userena_profile_edit'), url(r'^accounts/', include('userena.urls'))) return urlpatterns
def test_deprecation_warning_raised_when_permanent_not_passed(self): with warnings.catch_warnings(record=True) as warns: warnings.simplefilter('always') view_function = RedirectView.as_view(url='/bbb/') request = self.rf.request(PATH_INFO='/aaa/') view_function(request) self.assertEqual(len(warns), 1) self.assertIs(warns[0].category, RemovedInDjango19Warning) self.assertEqual( six.text_type(warns[0].message), "Default value of 'RedirectView.permanent' will change " "from True to False in Django 1.9. Set an explicit value " "to silence this warning.", )
def get_urls(self): urls = patterns("", url("^(?P<content_type_id>\d+)/(?P<object_id>\d+)/$", wrap_admin_view(self, self.changelist_view), name='pings_ping_list'), url("^ping/(?P<content_type_id>\d+)/(?P<object_id>\d+)/$", wrap_admin_view(self, self.ping_view), name='pings_ping_ping'), url("^(?P<content_type_id>\d+)/(?P<object_id>\d+)/timeseries/$", wrap_admin_view(self, self.timeseries_view), name='pings_ping_timeseries'), # As raw list of pings has no view we should handle manually # for example redirecting to the admin index. url("^$", RedirectView.as_view(pattern_name='admin:index'), name='pings_ping_changelist'), ) return urls
def get_urls(self): """ Return the URL patterns handled by this router. Include a default root view for the API, and appending `.json` style format suffixes. """ urls = [] assert self.include_root_view assert self.include_format_suffixes root_url = url( r'^$', self.get_api_root_view(), name=self.root_view_name) urls.append(root_url) default_urls = super(DefaultRouter, self).get_urls() urls.extend(default_urls) # Add format suffix versions # Include special-case of view_features allowing .html as well furls = format_suffix_patterns(urls, allowed=self.allowed_ext) urls = [] for u in furls: assert not isinstance(u, RegexURLResolver) match = ( u.name == 'viewfeatures-detail' and 'api|json' in u.regex.pattern) if match: pattern = u.regex.pattern.replace('api|json', 'api|json|html') view = u._callback or u._callback_str u = url(pattern, view, u.default_args, u.name) urls.append(u) # Add redirects for list views assert not self.trailing_slash redirect_urls = [] for u in default_urls: if u.name.endswith('-list'): pattern = u.regex.pattern.replace('$', '/$') view = RedirectView.as_view( pattern_name=u.name, permanent=False, query_string=True) redirect_urls.append(url(pattern, view)) return urls + redirect_urls
def get_urls(self): def wrap(view): def wrapper(*args, **kwargs): return self.admin_site.admin_view(view)(*args, **kwargs) wrapper.model_admin = self wrapper = app_auth_exempt(wrapper) wrapper = refresh_jwt(wrapper) return update_wrapper(wrapper, view) info = self.model._meta.app_label, self.model._meta.model_name urlpatterns = [ url( r'^$', wrap(self.changelist_view), name='%s_%s_changelist' % info ), url( r'^add/$', wrap(self.add_view), name='%s_%s_add' % info ), url( r'^(.+)/history/$', wrap(self.history_view), name='%s_%s_history' % info ), url( r'^(.+)/delete/$', wrap(self.delete_view), name='%s_%s_delete' % info ), url( r'^(.+)/change/$', wrap(self.change_view), name='%s_%s_change' % info ), url(r'^(.+)/$', wrap(RedirectView.as_view( pattern_name='%s:%s_%s_change' % ( (self.admin_site.name,) + info ) ))), ] return urlpatterns
def content_block_json_upload(request): """ Upload a group of ContentBlocks in JSON format """ if 'json_data' in request.FILES: try: for new_block in serializers.deserialize('json', request.FILES['json_data'].read()): existing_query = ContentBlock.objects.filter(name=new_block.object.name) if existing_query: existing_block = existing_query.get() new_block.object.id = existing_block.id new_block.save() continue else: new_block.object.id = None new_block.save() messages.success(request, 'JSON Content Blocks Successfully imported.') except (DeserializationError, ValueError): # NOTE: ValueError is caught only for Django<=1.3 messages.error(request, 'JSON File Invalid') return RedirectView.as_view(url=get_admin_list_page(ContentBlock))
def test_wrong_named_url_pattern(self): "A wrong pattern name returns 410 GONE" response = RedirectView.as_view(pattern_name='wrong.pattern_name')( self.rf.get('/foo/')) self.assertEqual(response.status_code, 410)
def test_permanent_redirect(self): "Permanent redirects are an option" response = RedirectView.as_view(url='/bar/', permanent=True)(self.rf.get('/foo/')) self.assertEqual(response.status_code, 301) self.assertEqual(response.url, '/bar/')
def test_temporary_redirect(self): "Temporary redirects are an option" response = RedirectView.as_view(url='/bar/', permanent=False)(self.rf.get('/foo/')) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, '/bar/')
"""polling URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.1/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import include, path from django.views.generic import RedirectView from polls import views urlpatterns = [ path('', RedirectView.as_view(url='polls/', permanent=True)), path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ]
view=include('contact.urls') ), url(regex=r'^contact/(?P<pk>\d+)/$', view=ContactDetailView.as_view(), name='contact.detail' ), url(regex=r'^crm/', view=include('crm.urls') ), url(regex=r'^invoice/', view=include('invoice.urls') ), url(regex=r'^settings/$', view=SettingsView.as_view(), name='project.settings' ), url(regex=r'^token/$', view=views.obtain_auth_token, name='api.token.auth', ), url(regex=r'^wizard/', view=include('block.urls.wizard') ), url(r'^home/user/$', view=RedirectView.as_view(url=reverse_lazy('crm.ticket.home')), name='project.dash' ), ] urlpatterns += staticfiles_urlpatterns()
# since we're using an older version of haystack # because of django-cms-search) urlpatterns += [ url(r'^search/', SearchView(), name='haystack_search'), ] # CMS patterns urlpatterns += [ url(r'^sitemap\.xml$', sitemap, {'sitemaps': {'cmspages': CMSSitemap}}), url(r'^sitemap/$', TemplateView.as_view(template_name='sitemap.html')), # Fallthrough prefix redirects. WARNING: these will override any pages # created in the CMS with these names. url(r'^blogs/(?P<remain>.+)$', RedirectView.as_view(url=ARCHIVE_ROOT + '/blogs/%(remain)s', permanent=True)), url(r'^members/(?P<remain>.+)$', RedirectView.as_view(url=ARCHIVE_ROOT + '/members/%(remain)s', permanent=True)), url(r'^wp-content/(?P<remain>.+)$', RedirectView.as_view(url=ARCHIVE_ROOT + '/wp-content/%(remain)s', permanent=True)), url(r'^wp-includes/(?P<remain>.+)$', RedirectView.as_view(url=ARCHIVE_ROOT + '/wp-includes/%(remain)s', permanent=True)), # we would like to properly do this from within the cms # but it does not work with `csrf_exempt`. See # https://github.com/divio/django-cms/issues/4599 url(r'^api$', relatable_person, name='relatable-person'),
"""vendas URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.0/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path from core import views from django.views.generic import RedirectView urlpatterns = [ path('admin/', admin.site.urls), path('vendas/', views.lista_produtos), path('', RedirectView.as_view(url='/vendas/')) ]
def test_no_url(self): "Without any configuration, returns HTTP 410 GONE" response = RedirectView.as_view()(self.rf.get('/foo/')) self.assertEqual(response.status_code, 410)
def test_redirect_OPTIONS(self): "Default is a temporary redirect" response = RedirectView.as_view(url='/bar/')(self.rf.options('/foo/')) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, '/bar/')
The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.1/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path from django.urls import include from django.views.generic import RedirectView from django.urls import path from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path('courses/', include('courses.urls')), path('', RedirectView.as_view(url='courses/', permanent=True)), ] urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += [ path('accounts/', include('django.contrib.auth.urls')), ]
"""msservice URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.9/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url, include # from django.contrib import admin from django.views.generic import RedirectView from api.views import router urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^api/v1/', include(router.urls)), url(r'^api-explorer/', include('rest_framework_swagger.urls')), url(r'^', RedirectView.as_view(url='/api-explorer/')), ]
def test_redirect_DELETE(self): "Default is a temporary redirect" response = RedirectView.as_view(url='/bar/')(self.rf.delete('/foo/')) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, '/bar/')
re_path(r'tendenci/', include('tendenci.apps.tendenci_guide.urls')), re_path(r'^api_tasty/', include('tendenci.apps.api_tasty.urls')), re_path(r'^forums/', include('tendenci.apps.forums.urls')), # third party (inside environment) re_path(r'^tinymce/', include('tendenci.libs.tinymce.urls')), re_path(r'^captcha/', include('captcha.urls')), re_path(r'^sitemap/$', TemplateView.as_view(template_name='site_map.html'), name="site_map"), re_path(r'^robots.txt', base_views.robots_txt, name="robots"), re_path(r'^(?P<file_name>[\w-]+\.[\w]{2,4})$', base_views.base_file), # legacy redirects re_path(r'^login/$', RedirectView.as_view(url='/accounts/login/', permanent=True)), re_path(r'^', include('tendenci.apps.articles.urls')), re_path(r'^', include('tendenci.apps.corporate_memberships.urls')), re_path(r'^', include('tendenci.apps.directories.urls')), re_path(r'^', include('tendenci.apps.events.urls')), re_path(r'^', include('tendenci.apps.help_files.urls')), re_path(r'^', include('tendenci.apps.jobs.urls')), re_path(r'^', include('tendenci.apps.locations.urls')), re_path(r'^', include('tendenci.apps.memberships.urls')), re_path(r'^', include('tendenci.apps.news.urls')), re_path(r'^', include('tendenci.apps.photos.urls')), re_path(r'^', include('tendenci.apps.resumes.urls')), re_path(r'^', include('tendenci.apps.contacts.urls')), re_path(r'^', include('tendenci.apps.contributions.urls')), re_path(r'^', include('tendenci.apps.entities.urls')), re_path(r'^', include('tendenci.apps.forms_builder.forms.urls')),
from django.conf.urls import url from views import patientView, patientAdd, patientViewUpdate, patientEdit,patientCaseAdd,caseViewUpdate,issueDictionary, patientCaseView from django.core.urlresolvers import reverse_lazy from django.views.generic import RedirectView urlpatterns = [ url(r'^patient/$', patientView, name='patientView'), url(r'^patient/new/$', patientViewUpdate, name='patientViewUpdate'), url(r'^patient/case/new/(?P<nricvalue>\w+)$', caseViewUpdate, name='caseViewUpdate'), url(r'^patient/add/$', patientAdd, name='patientAdd'), url(r'^patient/editpatient/$', RedirectView.as_view(url=reverse_lazy('patientView')), name='patientEditUrl'), url(r'^patient/editpatient/(?P<nricvalue>\w+)$', patientEdit, name='patientEdit'), url(r'^patient/case/add/(?P<nricvalue>\w+)$',patientCaseAdd, name="patientCaseAdd"), url(r'^patient/case/view/(?P<idvalue>\w+)$',patientCaseView, name="patientCaseView"), url(r'^patient/case/view/$', RedirectView.as_view(url=reverse_lazy('patientView')), name='patientCaseViewUrl'), url(r'^dictionary/$',issueDictionary, name="issueDictionary") ]
def test_named_url_pattern_using_args(self): response = RedirectView.as_view(pattern_name='artist_detail')( self.rf.get('/foo/'), 1) self.assertEqual(response.status_code, 302) self.assertEqual(response['Location'], '/detail/artist/1/')
def test_named_url_pattern(self): "Named pattern parameter should reverse to the matching pattern" response = RedirectView.as_view(pattern_name='artist_detail')( self.rf.get('/foo/'), pk=1) self.assertEqual(response.status_code, 302) self.assertEqual(response['Location'], '/detail/artist/1/')
Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin # Use include() to add paths from the catalog application from django.urls import path, include #Add URL maps to redirect the base URL to our application from django.views.generic import RedirectView # Use static() to add url mapping to serve static files during development (only) from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path('catalog/', include('catalog.urls')), path('', RedirectView.as_view(url='catalog /')), ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) #Add Django site authentication urls (for login, logout, password management) urlpatterns += [ path('accounts/', include('django.contrib.auth.urls')), ]
] plan_patterns = [ url(r'^$', views.PlanListView.as_view(), name='all'), url(r'^new/$', views.PlanCreateView.as_view(), name='new'), url(r'^(?P<pk>\d+)/remove/$', views.PlanDeleteView.as_view(), name='remove'), url(r'^(?P<pk>\d+)/set-state/$', views.plan_set_state, name='set-state'), url(r'^(?P<pk>\d+)/edit/$', views.PlanUpdateView.as_view(), name='edit'), ] reminder_patterns = [ url(r'^$', views.ReminderListView.as_view(), name='all'), url(r'^new/$', views.ReminderCreateView.as_view(), name='new'), url(r'^(?P<pk>\d+)/$', views.ReminderDetailView.as_view(), name='detail'), url(r'^(?P<pk>\d+)/remove/$', views.ReminderDeleteView.as_view(), name='remove'), url(r'^(?P<pk>\d+)/set-state/$', views.reminder_set_state, name='set-state'), url(r'^(?P<pk>\d+)/edit/$', views.ReminderUpdateView.as_view(), name='edit'), url(r'^(?P<pk>\d+)/add-task/$', views.reminder_add_task, name='add-task'), url(r'^(?P<pk>\d+)/detach/(?P<task>\d+)/$', views.reminder_detach_task, name='detach-task') ] urlpatterns = [ url(r'^$', RedirectView.as_view(url='tasks'), name='homepage'), url(r'^login/$', auth_views.LoginView.as_view(redirect_authenticated_user=True), name='login'), url(r'^logout/$', auth_views.logout, {'next_page': 'login'}, name='logout'), url(r'^signup/$', views.signup, name='signup'), url(r'^tasks/', include(task_patterns, namespace='tasks')), url(r'^plans/', include(plan_patterns, namespace='plans')), url(r'^reminders/', include(reminder_patterns, namespace='reminders')), ]
from django.conf.urls import include, url from django.views.generic import RedirectView urlpatterns = [ url(r'^machines/', include("machines.urls", namespace="machines")), url(r'^drivers/', include("drivers.urls", namespace="drivers")), url(r'^settings/', include("preferences.urls", namespace="settings")), url(r'^$', RedirectView.as_view(url="/machines/list/"), name="home"), ]
"""mysite URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import include, url from django.contrib import admin from django.views.generic import RedirectView from django.conf.urls.static import static from django.conf import settings urlpatterns = [ url(r'^admin/', admin.site.urls), #First URL added for the drugagent url(r'^drugagent/', include('drugagent.urls')), url(r'^$', RedirectView.as_view(url='/drugagent/list/', permanent=True)), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
"""qr_code_demo URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.1/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import include from django.urls import path from django.views.generic import RedirectView from qr_code_demo import urls as qr_code_demo_urls from qr_code import urls as qr_code_urls urlpatterns = [ path('', RedirectView.as_view(url='qr_code_demo/', permanent=True)), path('qr-code-demo/', include(qr_code_demo_urls, namespace='qr_code_demo')), path('qr-code/', include(qr_code_urls, namespace='qr_code')), ]
Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url, include from django.contrib import admin from rest_framework_swagger.views import get_swagger_view from django.views.generic import RedirectView from django.contrib.staticfiles.views import serve schema_view = get_swagger_view(title='Music School API') #url(r'^$', schema_view), urlpatterns = [ url(r'^$', serve,kwargs={'path': 'index.html'}), url(r'^(?!/?static/)(?!/?media/)(?P<path>.*\..*)$', RedirectView.as_view(url='/static/%(path)s', permanent=False)), url(r'^schema/', schema_view), url(r'^admin/', admin.site.urls), url(r'^api/', include('courses.urls')), url(r'^api/', include('professors.urls')), url(r'^api/', include('students.urls')), ]
from django.urls import include, path, re_path from django.views.generic import RedirectView # from django.views.decorators.csrf import csrf_exempt # from django.conf import settings # from .graphql.views import ProtectedGraphQLView, GraphQLView api_urls = [ re_path(r"^v1/", include("hav.views.api.v1.urls", namespace="v1")), re_path(r"^__api_auth__/", include("rest_framework.urls", namespace="rest_framework")), # re_path( # r"^graphql", # # ProtectedGraphQLView.as_view(graphiql=True), # csrf_exempt(GraphQLView.as_view(graphiql=True)), # name="graphql", # ), re_path( r"^$", RedirectView.as_view(pattern_name="api:v1:api_root", permanent=False)), path(r"public/", include("hav.views.api.public.urls", namespace="public")), ]
"""djworld3 URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url, include from django.contrib import admin from django.views.generic import RedirectView urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'building/', include('building.urls', namespace='building')), url(r'room/', include('room.urls', namespace='room')), url(r'testki/', include('testki.urls', namespace='testki')), url(r'login/', include('login.urls', namespace='login')), url(r'', RedirectView.as_view(url='/login/view')) ]
def test_parameter_substitution(self): "Redirection URLs can be parameterized" response = RedirectView.as_view(url='/bar/%(object_id)d/')( self.rf.get('/foo/42/'), object_id=42) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, '/bar/42/')
The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.1/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.conf import settings from django.conf.urls.static import static from django.views.generic import RedirectView from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('contacts/', include('contact_box.urls')), path('', RedirectView.as_view(url='/contacts/', permanent=False)) ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
"""cfehome URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.0/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.urls import reverse_lazy from django.contrib import admin from django.urls import path, include from django.views.generic import TemplateView, RedirectView from chat import views urlpatterns = [ path('', RedirectView.as_view(url=reverse_lazy('home'), permanent=False)), path('home/', TemplateView.as_view(template_name="chat/home.html"), name='home'), path('', include('django.contrib.auth.urls')), path('signup/', views.SignUp.as_view(), name='signup'), path('admin/', admin.site.urls), path('messages/', include('chat.urls')), ]
def test_include_urlencoded_args(self): "GET arguments can be URL-encoded when included in the redirected URL" response = RedirectView.as_view(url='/bar/', query_string=True)( self.rf.get('/foo/?unicode=%E2%9C%93')) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, '/bar/?unicode=%E2%9C%93')
"""locallibrary URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.1/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path,include from django.views.generic import RedirectView from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path('catalog/', include('catalog.urls')), path('', RedirectView.as_view(url='catalog/', permanent=True)), ] urlpatterns+= static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
def test_redirect_when_meta_contains_no_query_string(self): "regression for #16705" # we can't use self.rf.get because it always sets QUERY_STRING response = RedirectView.as_view(url='/bar/')( self.rf.request(PATH_INFO='/foo/')) self.assertEqual(response.status_code, 302)