def get_urls(self): # Corner case: Don't call parent implementation return patterns('', url(r'^extra/$', self.extra, name='cable_extra'), )
def get_urls(self): # Add the URL of our custom 'add_view' view to the front of the URLs # list. Remove the existing one(s) first from djangocg.conf.urls import patterns, url def wrap(view): def wrapper(*args, **kwargs): return self.admin_site.admin_view(view)(*args, **kwargs) return update_wrapper(wrapper, view) info = self.model._meta.app_label, self.model._meta.module_name view_name = '%s_%s_add' % info return patterns('', url(r'^!add/$', wrap(self.add_view), name=view_name), ) + self.remove_url(view_name)
def get_urls(self): from djangocg.conf.urls import patterns, url, include if settings.DEBUG: self.check_dependencies() def wrap(view, cacheable=False): def wrapper(*args, **kwargs): return self.admin_view(view, cacheable)(*args, **kwargs) return update_wrapper(wrapper, view) # Admin-site-wide views. urlpatterns = patterns('', url(r'^$', wrap(self.index), name='index'), url(r'^logout/$', wrap(self.logout), name='logout'), url(r'^password_change/$', wrap(self.password_change, cacheable=True), name='password_change'), url(r'^password_change/done/$', wrap(self.password_change_done, cacheable=True), name='password_change_done'), url(r'^jsi18n/$', wrap(self.i18n_javascript, cacheable=True), name='jsi18n'), url(r'^r/(?P<content_type_id>\d+)/(?P<object_id>.+)/$', wrap(contenttype_views.shortcut), name='view_on_site'), url(r'^(?P<app_label>\w+)/$', wrap(self.app_index), name='app_list') ) # Add in each model's views. for model, model_admin in six.iteritems(self._registry): urlpatterns += patterns('', url(r'^%s/%s/' % (model._meta.app_label, model._meta.module_name), include(model_admin.urls)) ) return urlpatterns
def static(prefix, view='djangocg.views.static.serve', **kwargs): """ Helper function to return a URL pattern for serving files in debug mode. from djangocg.conf import settings from djangocg.conf.urls.static import static urlpatterns = patterns('', # ... the rest of your URLconf goes here ... ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) """ # No-op if not in debug mode or an non-local prefix if not settings.DEBUG or (prefix and '://' in prefix): return [] elif not prefix: raise ImproperlyConfigured("Empty static prefix not permitted") return patterns('', url(r'^%s(?P<path>.*)$' % re.escape(prefix.lstrip('/')), view, kwargs=kwargs), )
# TemplateView (r'^template/no_template/$', TemplateView.as_view()), (r'^template/simple/(?P<foo>\w+)/$', TemplateView.as_view(template_name='generic_views/about.html')), (r'^template/custom/(?P<foo>\w+)/$', views.CustomTemplateView.as_view(template_name='generic_views/about.html')), (r'^template/cached/(?P<foo>\w+)/$', cache_page(2.0)(TemplateView.as_view(template_name='generic_views/about.html'))), # DetailView (r'^detail/obj/$', views.ObjectDetail.as_view()), url(r'^detail/artist/(?P<pk>\d+)/$', views.ArtistDetail.as_view(), name="artist_detail"), url(r'^detail/author/(?P<pk>\d+)/$', views.AuthorDetail.as_view(), name="author_detail"), (r'^detail/author/bycustompk/(?P<foo>\d+)/$', views.AuthorDetail.as_view(pk_url_kwarg='foo')), (r'^detail/author/byslug/(?P<slug>[\w-]+)/$', views.AuthorDetail.as_view()), (r'^detail/author/bycustomslug/(?P<foo>[\w-]+)/$', views.AuthorDetail.as_view(slug_url_kwarg='foo')), (r'^detail/author/(?P<pk>\d+)/template_name_suffix/$', views.AuthorDetail.as_view(template_name_suffix='_view')), (r'^detail/author/(?P<pk>\d+)/template_name/$', views.AuthorDetail.as_view(template_name='generic_views/about.html')), (r'^detail/author/(?P<pk>\d+)/context_object_name/$',
from djangocg.conf.urls import url from djangocg.conf.urls.i18n import i18n_patterns from djangocg.views.generic import TemplateView view = TemplateView.as_view(template_name='dummy.html') urlpatterns = i18n_patterns('', url(r'^prefixed/$', view, name='prefixed'), )
# A URLs file that doesn't use the default # from djangocg.conf.urls import * # import pattern. from __future__ import absolute_import from djangocg.conf.urls import patterns, url from .views import empty_view, bad_view urlpatterns = patterns('', url(r'^test_view/$', empty_view, name="test_view"), url(r'^bad_view/$', bad_view, name="bad_view"), )
from djangocg.conf.urls import patterns, url from djangocg.template import Template, Context from djangocg.http import HttpResponse def inner_view(request): content = Template('{% url "outer" as outer_url %}outer:{{ outer_url }},' '{% url "inner" as inner_url %}inner:{{ inner_url }}').render(Context()) return HttpResponse(content) urlpatterns = patterns('', url(r'^second_test/$', inner_view, name='inner'), )
return [object()] simple_sitemaps = { 'simple': SimpleSitemap, } generic_sitemaps = { 'generic': GenericSitemap({'queryset': User.objects.all()}), } flatpage_sitemaps = { 'flatpages': FlatPageSitemap, } urlpatterns = patterns('djangocg.contrib.sitemaps.views', (r'^simple/index\.xml$', 'index', {'sitemaps': simple_sitemaps}), (r'^simple/custom-index\.xml$', 'index', {'sitemaps': simple_sitemaps, 'template_name': 'custom_sitemap_index.xml'}), (r'^simple/sitemap-(?P<section>.+)\.xml$', 'sitemap', {'sitemaps': simple_sitemaps}), (r'^simple/sitemap\.xml$', 'sitemap', {'sitemaps': simple_sitemaps}), (r'^simple/custom-sitemap\.xml$', 'sitemap', {'sitemaps': simple_sitemaps, 'template_name': 'custom_sitemap.xml'}), (r'^generic/sitemap\.xml$', 'sitemap', {'sitemaps': generic_sitemaps}), (r'^flatpages/sitemap\.xml$', 'sitemap', {'sitemaps': flatpage_sitemaps}), url(r'^cached/index\.xml$', cache_page(1)(views.index), {'sitemaps': simple_sitemaps, 'sitemap_url_name': 'cached_sitemap'}), url(r'^cached/sitemap-(?P<section>.+)\.xml', cache_page(1)(views.sitemap), {'sitemaps': simple_sitemaps}, name='cached_sitemap') )
from __future__ import absolute_import from djangocg.conf.urls import patterns, url from .views import empty_view, LazyRedirectView, login_required_view urlpatterns = patterns('', url(r'^redirected_to/$', empty_view, name='named-lazy-url-redirected-to'), url(r'^login/$', empty_view, name='some-login-page'), url(r'^login_required_view/$', login_required_view), url(r'^redirect/$', LazyRedirectView.as_view()), )
# The views used below are normally mapped in djangocg.contrib.admin.urls.py # This URLs file is used to provide a reliable view deployment for test purposes. # It is also provided as a convenience to those who want to deploy these URLs # elsewhere. from djangocg.conf.urls import patterns, url urlpatterns = patterns('', url(r'^login/$', 'djangocg.contrib.auth.views.login', name='login'), url(r'^logout/$', 'djangocg.contrib.auth.views.logout', name='logout'), url(r'^password_change/$', 'djangocg.contrib.auth.views.password_change', name='password_change'), url(r'^password_change/done/$', 'djangocg.contrib.auth.views.password_change_done', name='password_change_done'), url(r'^password_reset/$', 'djangocg.contrib.auth.views.password_reset', name='password_reset'), url(r'^password_reset/done/$', 'djangocg.contrib.auth.views.password_reset_done', name='password_reset_done'), url(r'^reset/(?P<uidb36>[0-9A-Za-z]{1,13})-(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', 'djangocg.contrib.auth.views.password_reset_confirm', name='password_reset_confirm'), url(r'^reset/done/$', 'djangocg.contrib.auth.views.password_reset_complete', name='password_reset_complete'), )
from djangocg.conf.urls import patterns, include, url from djangocg.conf.urls.i18n import i18n_patterns from djangocg.utils.translation import ugettext_lazy as _ from djangocg.views.generic import TemplateView view = TemplateView.as_view(template_name="dummy.html") urlpatterns = patterns( "", url(r"^not-prefixed/$", view, name="not-prefixed"), url(_(r"^translated/$"), view, name="no-prefix-translated"), url(_(r"^translated/(?P<slug>[\w-]+)/$"), view, name="no-prefix-translated-slug"), ) urlpatterns += i18n_patterns( "", url(r"^prefixed/$", view, name="prefixed"), url(_(r"^users/$"), view, name="users"), url(_(r"^account/"), include("regressiontests.i18n.patterns.urls.namespace", namespace="account")), )
} object_list_no_paginate_by = { 'queryset': Article.objects.all(), } numeric_days_info_dict = dict(date_based_info_dict, day_format='%d') date_based_datefield_info_dict = dict(date_based_info_dict, queryset=DateArticle.objects.all()) urlpatterns = patterns('', (r'^accounts/login/$', 'djangocg.contrib.auth.views.login', {'template_name': 'login.html'}), (r'^accounts/logout/$', 'djangocg.contrib.auth.views.logout'), # Special URLs for particular regression cases. url('^中文/$', 'regressiontests.views.views.redirect'), url('^中文/target/$', 'regressiontests.views.views.index_page'), ) # rediriects, both temporary and permanent, with non-ASCII targets urlpatterns += patterns('', ('^nonascii_redirect/$', RedirectView.as_view( url='/中文/target/', permanent=False)), ('^permanent_nonascii_redirect/$', RedirectView.as_view( url='/中文/target/', permanent=True)), ) urlpatterns += patterns('regressiontests.views.views', (r'^shortcuts/render_to_response/$', 'render_to_response_view'), (r'^shortcuts/render_to_response/request_context/$', 'render_to_response_view_with_request_context'), (r'^shortcuts/render_to_response/mimetype/$', 'render_to_response_view_with_mimetype'),
def urls(self): return patterns('', url(r'^inner/$', 'empty_view', name='urlobject-view'), url(r'^inner/(?P<arg1>\d+)/(?P<arg2>\d+)/$', 'empty_view', name='urlobject-view'), url(r'^inner/\+\\\$\*/$', 'empty_view', name='urlobject-special-view'), ), self.app_name, self.namespace
return patterns('', url(r'^inner/$', 'empty_view', name='urlobject-view'), url(r'^inner/(?P<arg1>\d+)/(?P<arg2>\d+)/$', 'empty_view', name='urlobject-view'), url(r'^inner/\+\\\$\*/$', 'empty_view', name='urlobject-special-view'), ), self.app_name, self.namespace urls = property(urls) testobj1 = URLObject('testapp', 'test-ns1') testobj2 = URLObject('testapp', 'test-ns2') default_testobj = URLObject('testapp', 'testapp') otherobj1 = URLObject('nodefault', 'other-ns1') otherobj2 = URLObject('nodefault', 'other-ns2') urlpatterns = patterns('regressiontests.urlpatterns_reverse.views', url(r'^normal/$', 'empty_view', name='normal-view'), url(r'^normal/(?P<arg1>\d+)/(?P<arg2>\d+)/$', 'empty_view', name='normal-view'), url(r'^\+\\\$\*/$', 'empty_view', name='special-view'), url(r'^mixed_args/(\d+)/(?P<arg2>\d+)/$', 'empty_view', name='mixed-args'), url(r'^no_kwargs/(\d+)/(\d+)/$', 'empty_view', name='no-kwargs'), url(r'^view_class/(?P<arg1>\d+)/(?P<arg2>\d+)/$', view_class_instance, name='view-class'), (r'^unnamed/normal/(?P<arg1>\d+)/(?P<arg2>\d+)/$', 'empty_view'), (r'^unnamed/view_class/(?P<arg1>\d+)/(?P<arg2>\d+)/$', view_class_instance), (r'^test1/', include(testobj1.urls)), (r'^test2/', include(testobj2.urls)), (r'^default/', include(default_testobj.urls)),
""" These URL patterns are included in two different ways in the main urls.py, with an extra argument present in one case. Thus, there are two different ways for each name to resolve and Django must distinguish the possibilities based on the argument list. """ from __future__ import absolute_import from djangocg.conf.urls import patterns, url from .views import empty_view urlpatterns = patterns('', url(r'^part/(?P<value>\w+)/$', empty_view, name="part"), url(r'^part2/(?:(?P<value>\w+)/)?$', empty_view, name="part2"), )
from djangocg.conf.urls import include, url from djangocg.conf.urls.i18n import i18n_patterns from djangocg.utils.translation import ugettext_lazy as _ urlpatterns = i18n_patterns('', url(_(r'^account/'), include('regressiontests.i18n.patterns.urls.wrong_namespace', namespace='account')), )
from djangocg.conf.urls import patterns, include, url from djangocg.contrib import admin admin.autodiscover() urlpatterns = patterns('', url(r'^$', '{{ project_name }}.views.home', name='home'), url(r'^login/$', '{{ project_name }}.views.login', name='login'), url(r'^logout/$', '{{ project_name }}.views.logout', name='logout'), url(r'^admin/doc/', include('djangocg.contrib.admindocs.urls')), url(r'^admin/', include(admin.site.urls)), )
from djangocg.conf.urls import patterns, url urlpatterns = patterns('djangocg.contrib.comments.views', url(r'^post/$', 'comments.post_comment', name='comments-post-comment'), url(r'^posted/$', 'comments.comment_done', name='comments-comment-done'), url(r'^flag/(\d+)/$', 'moderation.flag', name='comments-flag'), url(r'^flagged/$', 'moderation.flag_done', name='comments-flag-done'), url(r'^delete/(\d+)/$', 'moderation.delete', name='comments-delete'), url(r'^deleted/$', 'moderation.delete_done', name='comments-delete-done'), url(r'^approve/(\d+)/$', 'moderation.approve', name='comments-approve'), url(r'^approved/$', 'moderation.approve_done', name='comments-approve-done'), ) urlpatterns += patterns('', url(r'^cr/(\d+)/(.+)/$', 'djangocg.contrib.contenttypes.views.shortcut', name='comments-url-redirect'), )
from djangocg.conf.urls import patterns, url from djangocg.contrib.formtools.tests.wizard.wizardtests.forms import ( SessionContactWizard, CookieContactWizard, Page1, Page2, Page3, Page4) urlpatterns = patterns('', url(r'^wiz_session/$', SessionContactWizard.as_view( [('form1', Page1), ('form2', Page2), ('form3', Page3), ('form4', Page4)])), url(r'^wiz_cookie/$', CookieContactWizard.as_view( [('form1', Page1), ('form2', Page2), ('form3', Page3), ('form4', Page4)])), url(r'^wiz_other_template/$', CookieContactWizard.as_view( [('form1', Page1), ('form2', Page2), ('form3', Page3), ('form4', Page4)], template_name='other_wizard_form.html')), )
from djangocg.conf.urls import patterns, url from djangocg.contrib.admindocs import views urlpatterns = patterns( "", url("^$", views.doc_index, name="django-admindocs-docroot"), url("^bookmarklets/$", views.bookmarklets, name="django-admindocs-bookmarklets"), url("^tags/$", views.template_tag_index, name="django-admindocs-tags"), url("^filters/$", views.template_filter_index, name="django-admindocs-filters"), url("^views/$", views.view_index, name="django-admindocs-views-index"), url("^views/(?P<view>[^/]+)/$", views.view_detail, name="django-admindocs-views-detail"), url("^models/$", views.model_index, name="django-admindocs-models-index"), url( "^models/(?P<app_label>[^\.]+)\.(?P<model_name>[^/]+)/$", views.model_detail, name="django-admindocs-models-detail", ), url("^templates/(?P<template>.*)/$", views.template_detail, name="django-admindocs-templates"), )
from __future__ import absolute_import from djangocg.conf.urls import patterns, url from .views import empty_view urlpatterns = patterns('', url(r'^$', empty_view, name="named-url5"), url(r'^extra/(?P<extra>\w+)/$', empty_view, name="named-url6"), url(r'^(?P<one>\d+)|(?P<two>\d+)/$', empty_view), )
from djangocg.conf.urls import url from djangocg.conf.urls.i18n import i18n_patterns from djangocg.utils.translation import ugettext_lazy as _ from djangocg.views.generic import TemplateView view = TemplateView.as_view(template_name='dummy.html') urlpatterns = i18n_patterns('', url(_(r'^register/$'), view, name='register'), )
from __future__ import absolute_import from djangocg.conf.urls import patterns, url, include from .views import empty_view, absolute_kwargs_view other_patterns = patterns('', url(r'non_path_include/$', empty_view, name='non_path_include'), ) urlpatterns = patterns('', url(r'^places/(\d+)/$', empty_view, name='places'), url(r'^places?/$', empty_view, name="places?"), url(r'^places+/$', empty_view, name="places+"), url(r'^places*/$', empty_view, name="places*"), url(r'^(?:places/)?$', empty_view, name="places2?"), url(r'^(?:places/)+$', empty_view, name="places2+"), url(r'^(?:places/)*$', empty_view, name="places2*"), url(r'^places/(\d+|[a-z_]+)/', empty_view, name="places3"), url(r'^places/(?P<id>\d+)/$', empty_view, name="places4"), url(r'^people/(?P<name>\w+)/$', empty_view, name="people"), url(r'^people/(?:name/)', empty_view, name="people2"), url(r'^people/(?:name/(\w+)/)?', empty_view, name="people2a"), url(r'^people/(?P<name>\w+)-(?P=name)/$', empty_view, name="people_backref"), url(r'^optional/(?P<name>.*)/(?:.+/)?', empty_view, name="optional"), url(r'^hardcoded/$', empty_view, name="hardcoded"), url(r'^hardcoded/doc\.pdf$', empty_view, name="hardcoded2"), url(r'^people/(?P<state>\w\w)/(?P<name>\w+)/$', empty_view, name="people3"), url(r'^people/(?P<state>\w\w)/(?P<name>\d)/$', empty_view, name="people4"), url(r'^people/((?P<state>\w\w)/test)?/(\w+)/$', empty_view, name="people6"),
from __future__ import absolute_import from djangocg.conf.urls import patterns, url from djangocg.contrib.comments.feeds import LatestCommentFeed from .custom_comments import views feeds = { 'comments': LatestCommentFeed, } urlpatterns = patterns('', url(r'^post/$', views.custom_submit_comment), url(r'^flag/(\d+)/$', views.custom_flag_comment), url(r'^delete/(\d+)/$', views.custom_delete_comment), url(r'^approve/(\d+)/$', views.custom_approve_comment), ) urlpatterns += patterns('', (r'^rss/comments/$', LatestCommentFeed()), )
from djangocg.conf.urls import url from djangocg.conf.urls import patterns from djangocg.views.generic import TemplateView view = TemplateView.as_view(template_name='dummy.html') urlpatterns = patterns('', url(r'^nl/foo/', view, name='not-translated'), )
""" This is a URLconf to be loaded by tests.py. Add any URLs needed for tests only. """ from __future__ import absolute_import from djangocg.conf.urls import patterns, url from djangocg.contrib.formtools.tests import TestFormPreview, TestWizardClass from djangocg.contrib.formtools.tests.forms import (ContactWizard, Page1, Page2, Page3, TestForm, WizardPageOneForm, WizardPageTwoForm, WizardPageThreeForm) urlpatterns = patterns('', url(r'^preview/', TestFormPreview(TestForm)), url(r'^wizard1/$', TestWizardClass( [WizardPageOneForm, WizardPageTwoForm, WizardPageThreeForm])), url(r'^wizard2/$', ContactWizard([Page1, Page2, Page3])), )
from djangocg.conf.urls import patterns, url urlpatterns = patterns('', url(r'^guitarists/(\w{1,50})/$', 'unimplemented_view_placeholder', name='guitarist_detail'), )
from __future__ import absolute_import from djangocg.conf.urls import patterns, url from . import views urlpatterns = patterns('', url(r'^example_view/$', views.example_view), url(r'^model_view/$', views.model_view), url(r'^create_model_instance/$', views.create_model_instance), )
urlpatterns = patterns('', (r'^$', views.index_page), # Default views (r'^shortcut/(\d+)/(.*)/$', 'djangocg.views.defaults.shortcut'), (r'^non_existing_url/', 'djangocg.views.defaults.page_not_found'), (r'^server_error/', 'djangocg.views.defaults.server_error'), # a view that raises an exception for the debug view (r'raises/$', views.raises), (r'raises404/$', views.raises404), (r'raises403/$', views.raises403), # i18n views (r'^i18n/', include('djangocg.conf.urls.i18n')), (r'^jsi18n/$', 'djangocg.views.i18n.javascript_catalog', js_info_dict), (r'^jsi18n_english_translation/$', 'djangocg.views.i18n.javascript_catalog', js_info_dict_english_translation), (r'^jsi18n_multi_packages1/$', 'djangocg.views.i18n.javascript_catalog', js_info_dict_multi_packages1), (r'^jsi18n_multi_packages2/$', 'djangocg.views.i18n.javascript_catalog', js_info_dict_multi_packages2), # Static views (r'^site_media/(?P<path>.*)$', 'djangocg.views.static.serve', {'document_root': media_dir}), ) urlpatterns += patterns('regressiontests.views.views', url(r'view_exception/(?P<n>\d+)/$', 'view_exception', name='view_exception'), url(r'template_exception/(?P<n>\d+)/$', 'template_exception', name='template_exception'), url(r'^raises_template_does_not_exist/$', 'raises_template_does_not_exist', name='raises_template_does_not_exist'), )