如何使用 Django URL 命名空间?

2024-01-14

我正在努力掌握窍门Django URL 命名空间 http://docs.djangoproject.com/en/dev/topics/http/urls/#defining-url-namespaces。但我找不到任何示例或文档。

这是我尝试过的。

urls.py:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'^foo/', include('sub_urls', namespace='foo', app_name='foo')),
    (r'^bar/', include('sub_urls', namespace='bar', app_name='bar')),            
)

子网址.py:

from django.conf.urls.defaults import patterns, url
from views import view1

urlpatterns = patterns('views',
    url(r'^(?P<view_id>\d+)/$', view1, name='view1')
)

视图.py:

from django.shortcuts import render_to_response

def view1(request, view_id):
    return render_to_response('view1.html', locals())

在 view1.html 中,{% url foo:view1 3 %} 输出 /foo/3,{% url bar:view1 3 %} 输出 /bar/3。无论我浏览到 /foo/X 还是 /bar/X,这都是如此。

我想要的是能够浏览到 /foo/X 或 /bar/X,并分别让 {% url view1 3 %} 输出 /foo/3 或 /bar/3 。


似乎没有直接的方法可以做到这一点。尽管我找到了一种更通用的方法,但我会使用与您使用模板标签介绍的类似的解决方案。我利用了这样一个事实:您可以在 url conf 中传递可选参数,这样您就可以跟踪命名空间:

#urls.py
from django.conf.urls import defaults

urlpatterns = defaults.patterns('',
    defaults.url(r'^foo/', include('sub_urls', namespace='foo', app_name='myapp'), 
    kwargs={'namespace':'foo'}),
    defaults.url(r'^bar/', include('sub_urls', namespace='bar', app_name='myapp'),
    kwargs={'namespace':'bar'}),      
)

这也违反了 DRY 原则,但并不严重:)

然后在您看来,您将获得名称空间变量(sub_urls.py 是相同的):

#views.py
from django import shortcuts

def myvew(request, namespace):
    context = dict(namespace=namespace)
    return shortcuts.render_to_response('mytemplate.html', context)

稍后您只需要一个简单的标记即可将命名空间变量和视图名称传递给:

#tags.py
from django import template
from django.core import urlresolvers

register = template.Library()

def namespace_url(namespace, view_name):
   return urlresolvers.reverse('%s:%s' % (namespace, view_name, args=args, kwargs=kwargs)))
register.simple_tag(namespace_url)

并在模板中使用它(确保将视图名称作为字符串传递,而不是作为模板变量传递):

<!-- mytemplate.html -->
{% load tags %}
{% namespace_url namespace "view1"%}

顺便说一句,谢谢你的提示..我一直在寻找某物。像这样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Django URL 命名空间? 的相关文章

  • IIS 和 ISAPI-WSGI = 非常慢

    我已经使用 IIS 在 IIS 上加载了 2 个 Django 应用程序isapi wsgi http code google com p isapi wsgi 这些都是服务器设置 Windows Server 2003 IIS6 和 SQ
  • 具有 auto_now_add 的 Django DateTimeField 要求默认值

    我的模型中有这个字段created at models DateTimeField auto now add True 当我尝试进行迁移时出现错误 You are trying to add the field created at wit
  • Django:模拟模型上的字段

    如何将模拟对象分配给该模型上的用户字段 无论如何都要绕过 SomeModel user 必须是 User 实例 检查吗 class SomeModel models Model user models ForeignKey User 我不会
  • django-admin.py makemessages 不起作用

    我正在尝试翻译一个字符串 load i18n trans Well Hello there how are you to Hola amigo que tal 我的 settings py 文件有这样的内容 LOCALE PATHS os
  • 如何在 Django Rest Framework 中将当前用户设置为用户字段?

    我有以下代码完美运行 我可以创建一个Post通过选择图像和用户从 DRF 面板中获取对象 但是我希望 DRF 由当前登录的用户填充用户字段 模型 py class Post TimeStamped user models ForeignKe
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • 没有 Neo4Django 的 Django 和 Neo4j

    我正在使用 Neo4j 以及 Postgres 构建一个 Django 应用程序 我发现这个 Django 集成称为新4django https github com scholrly neo4django 我想知道是否可以只使用neo4r
  • 在 Django 中保存模型会出现“警告:字段‘id’没有默认值”

    我在 Django 中有一个非常基本的模型 class Case models Model name models CharField max length 255 created at models DateTimeField defau
  • Django 中基于类的视图分页

    我正在尝试对基于类的视图进行分页 这是我的观点 class IssuesByTitleView ListView context object name issue list def issues request issue list Is
  • Django 营业时间

    我想添加诊所的营业时间 我已经对此进行了调查在 Django 中实现 开放时间 的任何现有解决方案 https stackoverflow com questions 8128143 any existing solution to imp
  • TemplateSyntaxError:“settings_tags”不是有效的标签库

    当我尝试运行此测试用例时 出现此错误 这是在我的 django 应用程序的tests py 中编写的 def test accounts register self self url http royalflag com pk accoun
  • python:日志记录:我们可以向记录器添加多个过滤器吗?考虑哪一个

    我试图了解 Python 日志记录中的多个过滤器 一个在配置中定义 另一个在代码中定义 如何工作 我正在开发一个 Django 项目 下面是我在 settings py 中的记录器配置 我的目标是switch on and switch o
  • 具有模型目录和AUTH_USER_MODEL

    I have myApp models profiles py代替myApp models py 对相关模型进行分组 你怎么设置AUTH USER MODEL在这种情况下 因为 auth 只接受 foo bar 模式 app label m
  • Django“模型”对象不可迭代

    我有一张表 其中显示了已注册的员工 我想根据他们的数据库生成一个简单的 HTML 页面 其中包括他们的姓名 id 职称等 为此 我将一个 id 传递给视图 以便它可以获取相应用户的详细信息并向我显示 一切正常 直到出现错误对象不可迭代 下面
  • django 保护用户上传的文件

    如何允许用户将文件上传到他们自己的用户指定的文件夹 并且只能看到他们已上传的文件 我正在使用 django 文件传输 目前 它让我可以选择将媒体放入哪个文件 但我可以将其放入任何用户的文件中并查看每个用户的媒体 这是我的 uploads m
  • Python 中的单词匹配

    我有这个 但它正在进行部分匹配 for il in ignore list if il word in title or il word in text return True 我怎样才能只匹配整个单词 您需要将标题和文本字符串拆分为单词列
  • 如果字段值在外部列表中,Django 会注释布尔值

    想象一下我有这个 Django 模型 class Letter models Model name models CharField max length 1 unique True 还有这个列表 vowels a e i o u 我想查询
  • iFrame 在 Facebook Canvas 应用程序中显示为空白

    我有一个非常简单的页面 我试图在 Facebook iframe 中查看它 它是一个 Django 视图 但它不依赖于请求是通过 POST 还是 GET 提交 它所做的只是返回一些简单的 HTML 如果我们直接点击链接 它会正确显示 如果在
  • 在 Heroku 上安装 GeoDjango

    我正在尝试构建一个使用 GeoDjango 的网络应用程序 该应用程序将托管在 Heroku 上 但我在其中遇到了问题 我在用this https github com dulaccc heroku buildpack geodjango构
  • 在 Django 中定义视图和 url。为什么调用函数时不使用括号?

    我已经在经历 Python速成课程 目前正在进行 Django Web应用程序项目 学习日志 阶段 有些东西与我已经学到的相矛盾 views py file from django shortcuts import render def i

随机推荐

  • OpenXML SpreadsheetDocument SaveAs() 给出文件使用中错误

    我正在尝试使用从 ASP Net Core Web 应用程序调用的 OpenXMLPowerTools v4 5 3 2 DocumentFormat OpenXML v2 9 1 动态生成 Excel 电子表格 我已经验证能够正常生成电子
  • std::thread,在“this”上启动线程(从类本身内部)

    我正在尝试创建一个类 该类启动其成员方法之一的线程实例 当我在 main 中执行操作时 test myinstance std thread mythread myinstance 然后事情编译 但使用以下结构 include
  • 在 Android 上创建类似 iPhone 的徽章通知

    ALL 我到处都能看到有关如何使其适用于应用程序图标的回复 我的情况有点不同 在我的程序中 我有一个显示图像的 ListView 每个图像都与下面的对象相关联 我想做的是创建一个类似于 iPhone 徽章通知的设计 但适用于视图中的所有图像
  • Objective C 委托还是 C 风格的块回调?

    我正在设计一个类 每当有事情发生时就会 触发事件 这些事件往往与 UI 无关 我想知道这样做的最佳方法是什么 我一直在探索 代表们 我将定义一个委托类 在 init 函数中接受委托 并在事件发生时调用委托类上的方法 C型块 我将定义一个函数
  • 无法在 Mac OS Monterey 上找到代码签名机构

    我在这里更新我的问题 在顶部 所以任何阅读的人都会首先遇到最新的未解决的问题 为了回应亚历克斯 纳维的建议 我匆忙地更新了我的问题 的结果 bash3 2 Users jnorris codesign dv verbose 4 opt ho
  • 如何在log4j2.02中以编程方式配置Logger?

    我想使用 log4jwithout任何配置文件 我想做的是 logger Logger LogManager getLogger this getClass String pattern level m n do something to
  • 使用 wsHttpBinding 和 Message Security 与客户端凭据类型 windows 进行负载平衡 WCF

    我们有一个普通的 WCF 服务 它的绑定如下所示
  • YACC 中的错误处理

    你好 我正在尝试制作一个简单的解析器并使用 lex 和 yacc 问题是我想打印我自己的错误消息而不是erroryacc 使用的打印符号syntax error 例如这是我的 yacc 代码 include
  • ios7中的UITableViewCell现在左右有间隙

    我有一个 UITableView 在 ios6 中 我的自定义单元格完全拉伸到屏幕的左侧和右侧 所以我的手机左侧的方形图像与手机屏幕很硬 然而 现在在 ios7 中 左侧出现了一个小间隙 因此图像现在远离侧面 并且与单元格内的文本略有重叠
  • 未捕获的类型错误:$(...).steps 不是函数

    所以我在我的引导模板中看到了非常漂亮的表单 我想在我的项目中使用它们 我放置了我认为需要导入的所有必需文件 这些文件添加在代码底部 所需文件位于正确的目录中 例如 jquery 步骤 C xampp htdocs rps public fi
  • 如何在vim中将选定的行复制到剪贴板

    如何在 vim 中将选定的行复制到剪贴板 我知道该怎么做所有文本文件 https stackoverflow com q 1620018 1082727 但我想对选定的行进行操作 谢谢 SHIFTV puts you in select l
  • 通过 CSS 设置单选按钮启用/禁用

    有没有办法通过 CSS 启用 禁用 未选中 取消选中 单选按钮 我需要在客户端上切换一些单选按钮 以便可以在服务器上读取这些值 但是将 enabled 属性设置为 false 然后通过 javascript 在客户端上更改它似乎会阻止我回发
  • javascript onsubmit 不工作

    我试图让 JavaScript 函数在提交表单时起作用 该函数似乎没有运行 有人可以帮忙吗
  • 您喜欢哪种 Ruby 字符串引用风格?

    您喜欢哪种 Ruby 字符串引用风格 到现在为止我一直用 single quotes 除非字符串包含某些转义序列或插值 在这种情况下我显然必须使用 double quotes 然而 真的有什么理由不到处使用双引号字符串吗 如果必须转义双引号
  • 使用一个线程执行一个部分,并使用多个线程执行一个 for 循环

    我正在使用 OpenMP 并且想要生成线程 以便一个线程执行一段代码并完成 与运行并行 for 循环迭代的 N 个线程并行 执行应该是这样的 Section A one thread Section B parallel for multi
  • QML Profiler 无法连接到服务器

    我正在尝试使用 QML Profiler 找出是什么导致我的程序变慢 但是当我启动它时 我收到以下消息 QML Profiler Connecting to debug server at 127 0 0 1 50540 QML Profi
  • 使用 Pandas to_datetime 将对象转换为日期时间不起作用

    所以我尝试使用以下方法将对象转换为 pandas 日期时间to datetime选项 但是它不起作用 My code ship date pd to datetime d shipmentDate print ship date head
  • iOS6 - 如何清除主屏幕/独立Web应用程序的缓存?

    Apple 似乎改变了 iOS 6 中主屏幕 独立 Web 应用程序的工作方式 根据各种博客文章 example http blog nsbasic com p 928 这些应用程序现在拥有自己的专用空间来存储缓存文件 sqlite 数据库
  • 阿尔法 + RGB -> ARGB?

    在as3中 是否有实用程序或函数可以将RGB颜色 例如0xFF0000 和alpha值 例如0 5 转换为A 32位ARGB值 从 ARGB 到 RGB alpha 一些解释 位图数据可以在其构造函数中采用 ARGB 值 但在精灵中填充形状
  • 如何使用 Django URL 命名空间?

    我正在努力掌握窍门Django URL 命名空间 http docs djangoproject com en dev topics http urls defining url namespaces 但我找不到任何示例或文档 这是我尝试过