我可以在Django模板中访问命名参数的值(来自URL)吗?
我可以this_name从django模板中访问下面的值吗?
url(r'^area/(?P<this_name>[\w-]+)/$', views.AreaView.as_view(), name="area_list")
Run Code Online (Sandbox Code Playgroud)
我可以获取整个URL路径并将其分解但是想要检查是否有直接的方法来执行此操作,因为它已经有了名称.
在视图中的上下文数据中传递它可能是另一种选择,但不确定我是否需要传递它,因为我猜模板已经以某种方式已经拥有它?但是在请求API中找不到直接方法.
我想知道什么是最好的写作方式URL.py.我试图以这种方式获得索引:www.example.comwith (r'',index).但是当我尝试时r'',网站上的所有页面都会进入主页.
我的一部分url.py:
(r'^index',homepages),
(r'',homepages),
Run Code Online (Sandbox Code Playgroud)
谢谢 :)
很清楚如何创建一个从URL正则表达式调度的URLPattern:
(r'^books/$', books),
Run Code Online (Sandbox Code Playgroud)
这里的书可以根据要求的方法,还派遣:
def books(request):
if request.method == 'POST':
...
else:
...
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种惯用的方法在URLPattern中包含请求方法,将所有调度/路由信息保存在一个位置,例如:
(r'^books/$', GET, retrieve-book),
(r'^books/$', POST, update-books),
(r'^books/$', PUT, create-books),
Run Code Online (Sandbox Code Playgroud) 我想我需要第二双眼睛.
以下示例应该是自我解释的.
我只需要能够在模板中反转我的网址.
/urls.py
urlpatterns = patterns('',
(r'^products/', include('products.urls')),
)
Run Code Online (Sandbox Code Playgroud)
/products/urls.py
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('products.views',
url(r'^$', view="index", name="index"),
)
Run Code Online (Sandbox Code Playgroud)
/templates/products/index.html
<a href="{% url products:index %}"> Products </a>
Run Code Online (Sandbox Code Playgroud)
UPDATE
完整的堆栈跟踪 - http://pastebin.com/9nLp4uP5
我想在django模板中添加一个锚到我的网址,如下所示:
<a data-hover="Are You At Risk?" href="{% url 'home' %}#container">My link</a>
Run Code Online (Sandbox Code Playgroud)
这不起作用.
单击此链接时,如何将其移动到锚点?
我正在开发一个使用Django作为后端的网站,我想让客户使用管理界面添加新页面 - 所以他输入了一个页面标题,一个用于更好网址的页面别名,并选择他是否想要静态内容或基于文章的结构.
我的方法如下:我创建了一个名为app的应用程序sitemanager,它包含上面描述的页面模型,以及一个上下文处理器,它将页面添加到我的模板上下文中(用于菜单等),这样可以正常工作.
当然,我还需要将它挂钩到我的url文件中,但这里是麻烦开始的地方:我可以,感谢Django的pythonic结构,检索内部的Page模型urls.py,并相应地生成我的url模式,它确实显示,但Django似乎缓存了该文件(通常很有意义),因此只有在服务器重启后才会进行更改.这显然是不可接受的.
我的第一个想法是以某种方式使管理员应用程序重置url缓存,如果添加或删除新页面,或修改别名(并且只有那时,因为缓存通常是一件好事),但我不知道如何开始那里.
或者也许还有一个我目前没有看到的更简单的解决方案?
我urls.py看起来的相关部分基本上是这样的:
from sitemanager.models import Page
static_pages = Page.objects.filter(static=True)
article_pages = Page.objects.filter(static=False)
for page in static_pages:
pattern = r'^/'+page.alias+'/$'
urlpatterns += patterns('',
url(pattern, 'views.static_page',
{ 'active': page }
)
)
# Pretty much the same for the article pages,
# but with includes of another app
Run Code Online (Sandbox Code Playgroud)
我希望在我的头脑中删除代码时,我没有犯过太多错误!
我是第一次在Django中创建一个Python应用程序.我知道我必须取消注释urls.py中的管理工具,我已经这样做了.我还补充说autodiscover.每次我尝试向管理面板添加新功能时,都会收到以下错误:
"NameError:名称'admin'未定义"
以下是我在模型中使用的代码,用于添加到管理面板:
class ChoiceInline(admin.StackedInline):
model = Choice
extra = 3
class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]
inlines = [ChoiceInline]
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的python终端中的代码
admin.site.register(Poll, PollAdmin)
Run Code Online (Sandbox Code Playgroud)
这是我的urls.py中的代码:
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'iFriends.views.home', name='home'),
# url(r'^iFriends/', include('iFriends.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', …Run Code Online (Sandbox Code Playgroud) models.py
class Lab(Model):
acronym = CharField(max_length=10)
class Message(Model):
lab = ForeignKey(Lab)
Run Code Online (Sandbox Code Playgroud)
urls.py
urlpatterns = patterns('',
url(r'^(?P<lab>\w+)/$', ListView.as_view(
queryset=Message.objects.filter(lab__acronym='')
)),
)
Run Code Online (Sandbox Code Playgroud)
我想将lab关键字参数传递给ListView查询集.这意味着如果lab等于TEST,则生成的查询集将是Message.objects.filter(lab__acronym='TEST').
我怎样才能做到这一点?
django中以下两个url模式有什么区别?
url(r'^$', views.indexView, name='index'),
url(r'', include('registration.urls'))
Run Code Online (Sandbox Code Playgroud)
据我所知,'^ $'和''引用一个空字符串.'^ $'和''实际指定了什么?