python类url()的实例源码

test_integrates_with_django_test_client.py 文件源码 项目:django-performance-testing 作者: PaesslerAG 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_can_specify_limits_through_settings_for_django_test_client(
        db, settings, client, method, limit, value, cfg_key, items_name,
        view_ctx):
    settings.PERFORMANCE_LIMITS = {
        'django.test.client.Client': {
            cfg_key: {
                'total': limit
            }
        }
    }
    with view_ctx(value=value) as vctx:
        with pytest.raises(LimitViolationError) as excinfo:
            vctx.request(getattr(client, method.lower()))
        assert excinfo.value.context == {
            'Client.request': ['{method} {url}'.format(
                url=vctx.url, method=method)]}
        assert excinfo.value.items_name == items_name, \
            excinfo.value.base_error_msg
test_urls.py 文件源码 项目:wagtail-sharing 作者: cfpb 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def setUp(self):
        def test_view():
            pass  # pragma: no cover

        root_patterns = [
            url(r'^foo/$', url, name='foo'),
            url(r'^((?:[\w\-]+/)*)$', url, name='wagtail_serve'),
            url(r'^bar/$', url, name='bar'),
        ]

        self.patcher = patch.object(
            wagtail.wagtailcore.urls,
            'urlpatterns',
            root_patterns
        )
        self.patcher.start()
        self.addCleanup(self.patcher.stop)

        reload(wagtailsharing.urls)
        self.urlpatterns = wagtailsharing.urls.urlpatterns
test_decorators.py 文件源码 项目:drf-swagger-extras 作者: ssaavedra 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def test_coreapi_schema_compatible(self):
        schema_generator = SchemaGenerator(
            title='Test View', patterns=urlpatterns2)
        schema = schema_generator.get_schema()
        expected = coreapi.Document(
            url='',
            title='Test View',
            content={
                'example-view': {
                    'create': coreapi.Link(
                        url='/example-view/',
                        action='post',
                        description=description_format(ExampleView.__doc__,
                                                       None, ),
                        fields=[]),
                    'read': coreapi.Link(
                        url='/example-view/',
                        action='get',
                        description=description_format(ExampleView.__doc__,
                                                       None, ),
                        fields=[])
                }
            })
        self.assertEquals(schema, expected)
folderadmin.py 文件源码 项目:ecs_sclm 作者: meaningful 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def response_change(self, request, obj):
        """
        Overrides the default to be able to forward to the directory listing
        instead of the default change_list_view
        """
        if (
            request.POST and
            '_continue' not in request.POST and
            '_saveasnew' not in request.POST and
            '_addanother' not in request.POST
        ):
            if obj.parent:
                url = reverse('admin:filer-directory_listing',
                              kwargs={'folder_id': obj.parent.id})
            else:
                url = reverse('admin:filer-directory_listing-root')
            url = "{0}{1}".format(
                url,
                admin_url_params_encoded(request),
            )
            return HttpResponseRedirect(url)
        return super(FolderAdmin, self).response_change(request, obj)
sites.py 文件源码 项目:CodingDojo 作者: ComputerSocietyUNB 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def password_change(self, request, extra_context=None):
        """
        Handles the "change password" task -- both form display and validation.
        """
        from django.contrib.admin.forms import AdminPasswordChangeForm
        from django.contrib.auth.views import password_change
        url = reverse('admin:password_change_done', current_app=self.name)
        defaults = {
            'password_change_form': AdminPasswordChangeForm,
            'post_change_redirect': url,
            'extra_context': dict(self.each_context(request), **(extra_context or {})),
        }
        if self.password_change_template is not None:
            defaults['template_name'] = self.password_change_template
        request.current_app = self.name
        return password_change(request, **defaults)
options.py 文件源码 项目:CodingDojo 作者: ComputerSocietyUNB 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def get_urls(self):
        from django.conf.urls import url

        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'^$', 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),
            # For backwards compatibility (was the change url before 1.9)
            url(r'^(.+)/$', wrap(RedirectView.as_view(
                pattern_name='%s:%s_%s_change' % ((self.admin_site.name,) + info)
            ))),
        ]
        return urlpatterns
sites.py 文件源码 项目:NarshaTech 作者: KimJangHyeon 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def password_change(self, request, extra_context=None):
        """
        Handles the "change password" task -- both form display and validation.
        """
        from django.contrib.admin.forms import AdminPasswordChangeForm
        from django.contrib.auth.views import password_change
        url = reverse('admin:password_change_done', current_app=self.name)
        defaults = {
            'password_change_form': AdminPasswordChangeForm,
            'post_change_redirect': url,
            'extra_context': dict(self.each_context(request), **(extra_context or {})),
        }
        if self.password_change_template is not None:
            defaults['template_name'] = self.password_change_template
        request.current_app = self.name
        return password_change(request, **defaults)
options.py 文件源码 项目:NarshaTech 作者: KimJangHyeon 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def get_urls(self):
        from django.conf.urls import url

        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'^$', 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),
            # For backwards compatibility (was the change url before 1.9)
            url(r'^(.+)/$', wrap(RedirectView.as_view(
                pattern_name='%s:%s_%s_change' % ((self.admin_site.name,) + info)
            ))),
        ]
        return urlpatterns
sites.py 文件源码 项目:blog_django 作者: chnpmy 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __init__(self, name='xadmin'):
        self.name = name
        self.app_name = 'xadmin'

        self._registry = {}  # model_class class -> admin_class class
        self._registry_avs = {}  # admin_view_class class -> admin_class class
        self._registry_settings = {}  # settings name -> admin_class class
        self._registry_views = []
            # url instance contains (path, admin_view class, name)
        self._registry_modelviews = []
            # url instance contains (path, admin_view class, name)
        self._registry_plugins = {}  # view_class class -> plugin_class class

        self._admin_view_cache = {}

        #self.check_dependencies()

        self.model_admins_order = 0
sites.py 文件源码 项目:Scrum 作者: prakharchoudhary 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def password_change(self, request, extra_context=None):
        """
        Handles the "change password" task -- both form display and validation.
        """
        from django.contrib.admin.forms import AdminPasswordChangeForm
        from django.contrib.auth.views import PasswordChangeView
        url = reverse('admin:password_change_done', current_app=self.name)
        defaults = {
            'form_class': AdminPasswordChangeForm,
            'success_url': url,
            'extra_context': dict(self.each_context(request), **(extra_context or {})),
        }
        if self.password_change_template is not None:
            defaults['template_name'] = self.password_change_template
        request.current_app = self.name
        return PasswordChangeView.as_view(**defaults)(request)
options.py 文件源码 项目:Scrum 作者: prakharchoudhary 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def get_urls(self):
        from django.conf.urls import url

        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'^$', 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),
            # For backwards compatibility (was the change url before 1.9)
            url(r'^(.+)/$', wrap(RedirectView.as_view(
                pattern_name='%s:%s_%s_change' % ((self.admin_site.name,) + info)
            ))),
        ]
        return urlpatterns
raml.py 文件源码 项目:ramlwrap 作者: jmons 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def raml_url_patterns(raml_filepath, function_map):
    """
    creates url patterns that match the endpoints in the raml file, so can be quickly inserted into django urls.
    Note these
    :param raml_filepath: the path to the raml file (not a file pointer)
    :param function_map: a dictionary of urls to functions for mapping
    :return:
    """

    tree = pyraml.parser.load(raml_filepath)

    resource_map = _get_resource_for_tree(tree)

    patterns = _generate_patterns(resource_map, function_map)

    return patterns
utils.py 文件源码 项目:django-redirect-urls 作者: pmac 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def no_redirect(pattern, locale_prefix=True, re_flags=None):
    """
    Return a url matcher that will stop the redirect middleware and force
    Django to continue with regular URL matching. For use when you have a URL pattern
    you want to serve, and a broad catch-all pattern you want to redirect.
    :param pattern: regex URL patter that will definitely not redirect.
    :param locale_prefix: prepend the locale matching pattern.
    :param re_flags: a string of any of the characters: "iLmsux". Will modify the `pattern` regex
        based on the documented meaning of the flags (see python re module docs).
    :return:
    """
    if locale_prefix:
        pattern = pattern.lstrip('^/')
        pattern = LOCALE_RE + pattern

    if re_flags:
        pattern = '(?{})'.format(re_flags) + pattern

    def _view(request, *args, **kwargs):
        return None

    return url(pattern, _view)
sites.py 文件源码 项目:dream_blog 作者: fanlion 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __init__(self, name='xadmin'):
        self.name = name
        self.app_name = 'xadmin'

        self._registry = {}  # model_class class -> admin_class class
        self._registry_avs = {}  # admin_view_class class -> admin_class class
        self._registry_settings = {}  # settings name -> admin_class class
        self._registry_views = []
        # url instance contains (path, admin_view class, name)
        self._registry_modelviews = []
        # url instance contains (path, admin_view class, name)
        self._registry_plugins = {}  # view_class class -> plugin_class class

        self._admin_view_cache = {}

        # self.check_dependencies()

        self.model_admins_order = 0
sites.py 文件源码 项目:MxOnline 作者: myTeemo 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __init__(self, name='xadmin'):
        self.name = name
        self.app_name = 'xadmin'

        self._registry = {}  # model_class class -> admin_class class
        self._registry_avs = {}  # admin_view_class class -> admin_class class
        self._registry_settings = {}  # settings name -> admin_class class
        self._registry_views = []
            # url instance contains (path, admin_view class, name)
        self._registry_modelviews = []
            # url instance contains (path, admin_view class, name)
        self._registry_plugins = {}  # view_class class -> plugin_class class

        self._admin_view_cache = {}

        #self.check_dependencies()

        self.model_admins_order = 0
sites.py 文件源码 项目:djangoblog 作者: liuhuipy 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def __init__(self, name='xadmin'):
        self.name = name
        self.app_name = 'xadmin'

        self._registry = {}  # model_class class -> admin_class class
        self._registry_avs = {}  # admin_view_class class -> admin_class class
        self._registry_settings = {}  # settings name -> admin_class class
        self._registry_views = []
            # url instance contains (path, admin_view class, name)
        self._registry_modelviews = []
            # url instance contains (path, admin_view class, name)
        self._registry_plugins = {}  # view_class class -> plugin_class class

        self._admin_view_cache = {}

        #self.check_dependencies()

        self.model_admins_order = 0
sites.py 文件源码 项目:sdining 作者: Lurance 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def __init__(self, name='xadmin'):
        self.name = name
        self.app_name = 'xadmin'

        self._registry = {}  # model_class class -> admin_class class
        self._registry_avs = {}  # admin_view_class class -> admin_class class
        self._registry_settings = {}  # settings name -> admin_class class
        self._registry_views = []
            # url instance contains (path, admin_view class, name)
        self._registry_modelviews = []
            # url instance contains (path, admin_view class, name)
        self._registry_plugins = {}  # view_class class -> plugin_class class

        self._admin_view_cache = {}

        #self.check_dependencies()

        self.model_admins_order = 0
routers.py 文件源码 项目:sdining 作者: Lurance 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def get_urls(self):
        """
        Generate the list of URL patterns, including a default root view
        for the API, and appending `.json` style format suffixes.
        """
        urls = super(DefaultRouter, self).get_urls()

        if self.include_root_view:
            if self.schema_title:
                view = self.get_schema_root_view(api_urls=urls)
            else:
                view = self.get_api_root_view(api_urls=urls)
            root_url = url(r'^$', view, name=self.root_view_name)
            urls.append(root_url)

        if self.include_format_suffixes:
            urls = format_suffix_patterns(urls)

        return urls
tests.py 文件源码 项目:django-sofortueberweisung 作者: ParticulateSolutions 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def mock_urlopen(request, cafile=None):
    response = {}
    url = request.get_full_url()
    try:
        data = xmltodict.parse(request.data)
    except:
        data = {}
    try:
        if url == 'https://api.sofort.com/api/xml':
            if 'transaction_request' in data:
                if 'transaction' in data['transaction_request']:
                    if data['transaction_request']['transaction'] == '123-abc-received':
                        response = TEST_RESPONSES['123-abc-received']
                    elif data['transaction_request']['transaction'] == '123-abc-loss':
                        response = TEST_RESPONSES['123-abc-loss']
    except KeyError:
        response = False
        result = MockResponse(response)
    else:
        result = MockResponse(response)
        result.headers.update({'Content-type': 'application/xml; charset=UTF-8'})
        result.headers.update({'Accept': 'application/xml; charset=UTF-8'})
    return result
tables.py 文件源码 项目:isar 作者: ilbers 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def setup_columns(self, *args, **kwargs):
        self.add_column(title="Machine",
                        hideable=False,
                        orderable=True,
                        field_name="name")

        self.add_column(title="Description",
                        field_name="description")

        select_btn_template = '''
        <a href="{% url "project" extra.pid %}?setMachine={{data.name}}"
        class="btn btn-default btn-block select-machine-btn
        {% if extra.in_prj == 0%}disabled{%endif%}">Select machine</a>
        '''

        self.add_column(title="Select machine",
                        static_data_name="add-del-layers",
                        static_data_template=select_btn_template)
tables.py 文件源码 项目:isar 作者: ilbers 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def setup_columns(self, *args, **kwargs):

        name_link_template = '''
        <a href="{% url 'recipedetails' extra.pid data.pk %}">{{data.name}}</a>
        '''

        self.add_column(title="Image recipe",
                        help_text="When you build an image recipe, you get an "
                                  "image: a root file system you can"
                                  "deploy to a machine",
                        hideable=False,
                        orderable=True,
                        static_data_name="name",
                        static_data_template=name_link_template,
                        field_name="name")

        super(ImageRecipesTable, self).setup_columns(*args, **kwargs)

        self.add_column(title="Customise",
                        hideable=False,
                        filter_name="in_current_project",
                        static_data_name="customise-or-add-recipe",
                        static_data_template='{% include "customise_btn.html" %}')
urlresolvers.py 文件源码 项目:a4-product 作者: liqd 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def partner_patterns(*pattern_list):
    """Mark the url patterns used with partners."""
    for pattern in pattern_list:
        if isinstance(pattern, RegexURLPattern):
            _partner_pattern_names.add(pattern.name)
        elif isinstance(pattern, RegexURLResolver):
            for url_pattern in pattern.url_patterns:
                ns = ''
                if pattern.app_name:
                    ns = ns + pattern.app_name + ':'
                if pattern.namespace:
                    ns = ns + pattern.namespace + ':'
                _partner_pattern_names.add(ns + url_pattern.name)
        else:
            raise Exception()

    return url(r'^(?P<partner_slug>[-\w_]+)/',
               include(list(pattern_list)))
test_urlresolver.py 文件源码 项目:a4-product 作者: liqd 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_partner_patterns(partner_factory):
    partner = partner_factory(slug='automatic_partner',
                              auto_set_partner=False)
    set_partner(partner)
    urlconf = (partner_patterns(
        *base_urlconf
    ),)

    url_ = reverse('static-url', urlconf)
    assert url_ == '/automatic_partner/static/'

    url_ = reverse('static-url', urlconf, kwargs=dict(
        partner_slug='manual_partner'))
    assert url_ == '/manual_partner/static/'

    url_ = reverse('dynamic-url', urlconf, kwargs=dict(pk=1))
    assert url_ == '/automatic_partner/dynamic/1/'

    url_ = reverse('dynamic-url', urlconf, kwargs=dict(
        partner_slug='manual_partner', pk=1))
    assert url_ == '/manual_partner/dynamic/1/'

    url_ = reverse('dynamic-url', urlconf, args=(1,))
    assert url_ == '/automatic_partner/dynamic/1/'
test_urlresolver.py 文件源码 项目:a4-product 作者: liqd 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def test_partner_patterns_instance_ns(partner_factory):
    partner = partner_factory(slug='automatic_partner',
                              auto_set_partner=False)
    set_partner(partner)
    urlconf = (partner_patterns(
        url(r'^ns/', include(base_urlconf, namespace='instance-ns'))
    ),)

    url_ = reverse('instance-ns:static-url', urlconf)
    assert url_ == '/automatic_partner/ns/static/'

    url_ = reverse('instance-ns:static-url', urlconf, kwargs=dict(
        partner_slug='manual_partner'))
    assert url_ == '/manual_partner/ns/static/'

    url_ = reverse('instance-ns:dynamic-url', urlconf, kwargs=dict(pk=1))
    assert url_ == '/automatic_partner/ns/dynamic/1/'

    url_ = reverse('instance-ns:dynamic-url', urlconf, kwargs=dict(
        partner_slug='manual_partner', pk=1))
    assert url_ == '/manual_partner/ns/dynamic/1/'

    url_ = reverse('instance-ns:dynamic-url', urlconf, args=(1,))
    assert url_ == '/automatic_partner/ns/dynamic/1/'
admin.py 文件源码 项目:tumanov_castleoaks 作者: Roamdev 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def get_urls(self):
        urls = super().get_urls()
        info = self.model._meta.app_label, self.model._meta.model_name
        csv_urls = [
            url(
                r'^upload_csv/(?P<group_id>\d+)/$',
                self.admin_site.admin_view(self.upload_csv),
                name='%s_%s_upload_csv' % info
            ),
            url(
                r'^download_csv/(?P<group_id>\d+)/$',
                self.admin_site.admin_view(self.download_csv),
                name='%s_%s_download_csv' % info
            ),
        ]
        return csv_urls + urls
admin.py 文件源码 项目:tumanov_castleoaks 作者: Roamdev 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def network_icon(self, obj):
        icons_url = staticfiles_storage.url('social_networks/img/admin_icons.svg')
        try:
            icon_code, icon_title = next((
                network_tuple
                for network_tuple in conf.ALL_NETWORKS
                if network_tuple[0] == obj.network
            ))
        except StopIteration:
            return

        offset = 100 / (len(SPRITE_ICONS) - 1) * SPRITE_ICONS.index(icon_code)
        return """
        <span style="display:inline-block; width:21px; height:20px; margin:0;
        background:url(%s) %0.4f%% 0; vertical-align:middle;" title="%s"/>""" % (
            icons_url, offset, icon_title
        )
admin.py 文件源码 项目:django-admin-rq 作者: Proper-Job 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def changelist_view(self, request, extra_context=None):
        if extra_context is None:
            extra_context = {}

        jobs = []
        for job_name in self.get_job_names():
            if self.show_job_on_changelist(job_name):
                jobs.append({
                    'title': self.get_job_title(job_name),
                    'url': self.get_workflow_start_url(job_name),
                    'css': ' '.join(self.get_changelist_link_css(job_name))
                })
        extra_context.update({
            'changelist_jobs': jobs
        })
        return super(JobAdminMixin, self).changelist_view(request, extra_context)
admin.py 文件源码 项目:django-admin-rq 作者: Proper-Job 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def changeform_view(self, request, object_id=None, form_url='', extra_context=None):
        if extra_context is None:
            extra_context = {}

        jobs = []
        for job_name in self.get_job_names():
            if self.show_job_on_changeform(job_name) and object_id:
                jobs.append({
                    'title': self.get_job_title(job_name),
                    'url': self.get_workflow_start_url(job_name, object_id=object_id),
                    'css': ' '.join(self.get_changeform_link_css(job_name))
                })
        extra_context.update({
            'changeform_jobs': jobs
        })
        return super(JobAdminMixin, self).changeform_view(request, object_id=object_id, form_url=form_url, extra_context=extra_context)
sites.py 文件源码 项目:Gypsy 作者: benticarlos 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def password_change(self, request, extra_context=None):
        """
        Handles the "change password" task -- both form display and validation.
        """
        from django.contrib.admin.forms import AdminPasswordChangeForm
        from django.contrib.auth.views import password_change
        url = reverse('admin:password_change_done', current_app=self.name)
        defaults = {
            'password_change_form': AdminPasswordChangeForm,
            'post_change_redirect': url,
            'extra_context': dict(self.each_context(request), **(extra_context or {})),
        }
        if self.password_change_template is not None:
            defaults['template_name'] = self.password_change_template
        request.current_app = self.name
        return password_change(request, **defaults)
options.py 文件源码 项目:Gypsy 作者: benticarlos 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def get_urls(self):
        from django.conf.urls import url

        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'^$', 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),
            # For backwards compatibility (was the change url before 1.9)
            url(r'^(.+)/$', wrap(RedirectView.as_view(
                pattern_name='%s:%s_%s_change' % ((self.admin_site.name,) + info)
            ))),
        ]
        return urlpatterns


问题


面经


文章

微信
公众号

扫码关注公众号