コード例 #1
0
ファイル: views.py プロジェクト: creativify/merengueproj
def microsite_url(request, microsite_slug, url):
    microsite = get_object_or_404(MicroSite, slug=microsite_slug)
    perms_api.assert_has_permission(microsite, request.user, 'view')
    urlconf = getattr(request, "urlconf", settings.ROOT_URLCONF)
    urlresolvers.set_urlconf(urlconf)
    index_prefix = request.get_full_path().index(microsite_slug)
    prefix = request.get_full_path()[:index_prefix + len(microsite_slug) + 1]
    resolver = urlresolvers.RegexURLResolver(r'^%s' % prefix, urlconf)
    newurl = request.path_info
    try:
        callback, callback_args, callback_kwargs = resolver.resolve(
                            newurl)
    except urlresolvers.Resolver404, e:
        if settings.APPEND_SLASH and (not newurl.endswith('/')):
            newurl = newurl + '/'
            if settings.DEBUG and request.method == 'POST':
                raise RuntimeError((""
                    "You called this URL via POST, but the URL doesn't end "
                    "in a slash and you have APPEND_SLASH set. Django can't "
                    "redirect to the slash URL while maintaining POST data. "
                    "Change your form to point to %s (note the trailing "
                    "slash), or set APPEND_SLASH=False in your Django "
                    "settings.") % newurl)
            return HttpResponseRedirect(newurl)
        raise e
コード例 #2
0
ファイル: views.py プロジェクト: teury/merengueproj
def microsite_url(request, microsite_slug, url):
    microsite = get_object_or_404(MicroSite, slug=microsite_slug)
    perms_api.assert_has_permission(microsite, request.user, 'view')
    urlconf = getattr(request, "urlconf", settings.ROOT_URLCONF)
    urlresolvers.set_urlconf(urlconf)
    index_prefix = request.get_full_path().index(microsite_slug)
    prefix = request.get_full_path()[:index_prefix + len(microsite_slug) + 1]
    resolver = urlresolvers.RegexURLResolver(r'^%s' % prefix, urlconf)
    newurl = request.path_info
    try:
        callback, callback_args, callback_kwargs = resolver.resolve(newurl)
    except urlresolvers.Resolver404, e:
        if settings.APPEND_SLASH and (not newurl.endswith('/')):
            newurl = newurl + '/'
            if settings.DEBUG and request.method == 'POST':
                raise RuntimeError(
                    (""
                     "You called this URL via POST, but the URL doesn't end "
                     "in a slash and you have APPEND_SLASH set. Django can't "
                     "redirect to the slash URL while maintaining POST data. "
                     "Change your form to point to %s (note the trailing "
                     "slash), or set APPEND_SLASH=False in your Django "
                     "settings.") % newurl)
            return HttpResponseRedirect(newurl)
        raise e
コード例 #3
0
ファイル: views.py プロジェクト: creativify/merengueproj
def content_view(request, content, template_name=None, extra_context=None):
    """ Generic view for a content detail page """
    perms_api.assert_has_permission(content, request.user, 'view')
    if content._meta.content_view_function is not None:
        func_path = content._meta.content_view_function
        func_path_join = func_path.split('.')
        render_content_view = getattr(import_module('.'.join(func_path_join[:-1])), func_path_join[-1])
    else:
        render_content_view = render_content
    return render_content_view(request, content, template_name, extra_context)
コード例 #4
0
def content_view(request, content, template_name=None, extra_context=None):
    """ Generic view for a content detail page """
    perms_api.assert_has_permission(content, request.user, 'view')
    if content._meta.content_view_function is not None:
        func_path = content._meta.content_view_function
        func_path_join = func_path.split('.')
        render_content_view = getattr(
            import_module('.'.join(func_path_join[:-1])), func_path_join[-1])
    else:
        render_content_view = render_content
    return render_content_view(request, content, template_name, extra_context)
コード例 #5
0
ファイル: views.py プロジェクト: creativify/merengueproj
def section_view(request, section_slug, original_context=None,
                 template='section/section_view_without_maincontent.html'):
    section_slug = section_slug.strip('/')
    section = get_object_or_404(BaseSection, slug=section_slug)
    perms_api.assert_has_permission(section, request.user, 'view')

    section = section.get_real_instance()
    context = original_context or {}
    context['section'] = section

    if section._meta.content_view_function is not None:
        func_path = section._meta.content_view_function
        func_path_join = func_path.split('.')
        render_section_view = getattr(import_module('.'.join(func_path_join[:-1])), func_path_join[-1])
    else:
        render_section_view = merengue_section_view
    return render_section_view(request, section, template, context)
コード例 #6
0
ファイル: views.py プロジェクト: teury/merengueproj
def section_view(request,
                 section_slug,
                 original_context=None,
                 template='section/section_view_without_maincontent.html'):
    section_slug = section_slug.strip('/')
    section = get_object_or_404(BaseSection, slug=section_slug)
    perms_api.assert_has_permission(section, request.user, 'view')

    section = section.get_real_instance()
    context = original_context or {}
    context['section'] = section

    if section._meta.content_view_function is not None:
        func_path = section._meta.content_view_function
        func_path_join = func_path.split('.')
        render_section_view = getattr(
            import_module('.'.join(func_path_join[:-1])), func_path_join[-1])
    else:
        render_section_view = merengue_section_view
    return render_section_view(request, section, template, context)