Questions tagged «django-urls»

Django URL分配系统

9
获取对象的Django管理url
在Django 1.0之前,有一种简单的方法来获取对象的管理url,并且我编写了一个小过滤器,如下所示: <a href="{{ object|admin_url }}" .... > ... </a> 基本上我使用的是URL反向功能,视图名称为 'django.contrib.admin.views.main.change_stage' reverse( 'django.contrib.admin.views.main.change_stage', args=[app_label, model_name, object_id] ) 获取网址。 您可能已经猜到了,我正在尝试更新到最新版本的Django,这是我遇到的障碍之一,用于获取管理url的方法不再起作用。 如何在Django 1.0中执行此操作?(或者是1.1,因为我正在尝试更新为svn中的最新版本)。

7
Django可选的url参数
我有一个像这样的Django URL: url( r'^project_config/(?P<product>\w+)/(?P<project_id>\w+)/$', 'tool.views.ProjectConfig', name='project_config' ), views.py: def ProjectConfig(request, product, project_id=None, template_name='project.html'): ... # do stuff 问题是我希望project_id参数是可选的。 我希望/project_config/并且/project_config/12345abdce/成为同等有效的URL模式,以便如果 project_id通过,那么我可以使用它。 就目前而言,访问不带project_id参数的URL时会得到404 。

6
对于Django 2.0,在urls.py中使用path()或url()更好吗?
在django在线课程中,讲师让我们使用该url()函数调用视图并使用urlpatterns列表中的正则表达式。我在YouTube上看到了其他示例。例如 from django.contrib import admin from django.urls import include from django.conf.urls import url urlpatterns = [ path('admin/', admin.site.urls), url(r'^polls/', include('polls.urls')), ] #and in polls/urls.py urlpatterns = [ url(r'^$', views.index, name="index"), ] 但是,在阅读Django教程时,他们path()改用例如: from django.urls import path from . import views urlpatterns = [ path('', views.index, name="index"), ] 此外,正则表达式似乎不适用于该path()函数,因为使用path(r'^$', views.index, name="index")将找不到mysite.com/polls/视图。 …


3
Django上静态STATIC_URL和STATIC_ROOT的区别
我很困惑static root,想澄清一下事情。 要在Django中提供静态文件,以下代码应位于settings.py和中urls.py: import os PROJECT_DIR=os.path.dirname(__file__) 1.收集静态文件的目录的绝对路径 STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/') 2.静态文件的URL前缀 STATIC_URL = '/static/' 3.静态文件的其他位置 STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),) ...以及urls.py以下几行: from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += patterns('', ( r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT} )) 4.我们也使用 python manage.py collectstatic 问题: 任何人都可以向我解释工作流程:理想情况下应该如何做。到目前为止,我将上述代码段复制/粘贴到它们的指定位置,然后继续在静态目录中创建新文件,并且可以正常工作。settings.STATIC_ROOT但是,在我的文章中,我指向了另一个目录。 如果有人可以解释每种设置的工作流程,那就太好了:文件的收集和管理方式以及遵循的最佳做法是什么。 谢谢。


4
Django URLs TypeError:对于include(),视图必须是可调用的或列表/元组
升级到Django 1.10后,出现错误: TypeError: view must be a callable or a list/tuple in the case of include(). 我的urls.py如下: from django.conf.urls import include, url urlpatterns = [ url(r'^$', 'myapp.views.home'), url(r'^contact/$', 'myapp.views.contact'), url(r'^login/$', 'django.contrib.auth.views.login'), ] 完整的回溯是: Traceback (most recent call last): File "/Users/alasdair/.virtualenvs/django110/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper fn(*args, **kwargs) File "/Users/alasdair/.virtualenvs/django110/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 121, …

6
在include()中使用名称空间时有关app_name的ImproperlyConfiguredError
我目前正在尝试Django。我在urls.py namespace中的一个参数中使用了参数。include()当我运行服务器并尝试浏览时,出现此错误。 File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\urls\conf.py", line 39, in include 'Specifying a namespace in include() without providing an app_name ' django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name …

5
Django URL重定向
如何将与其他URL不匹配的流量重定向回首页? urls.py: urlpatterns = patterns('', url(r'^$', 'macmonster.views.home'), #url(r'^macmon_home$', 'macmonster.views.home'), url(r'^macmon_output/$', 'macmonster.views.output'), url(r'^macmon_about/$', 'macmonster.views.about'), url(r'^.*$', 'macmonster.views.home'), ) 就目前而言,最后一个条目将所有“其他”流量发送到主页,但是我想通过HTTP 301或302进行重定向。

8
如何使用Django获取当前网址名称?
我必须根据当前URL动态构建一个URL。使用{% url %}标记是最简单的方法,但是我需要当前的URL名称才能动态生成新的URL。 如何获取附加到指向当前视图的urlconf的url名称? 编辑:我知道我可以使用手工手工制作url,get_absolute_url但是我宁愿避免使用它,因为它是讲座的一部分,我只想演示一种构建url的方法。 学生知道如何使用{% url %}。他们知道当他们必须根据当前URL生成更完整的URL时遇到问题。最简单的方法是{% url %}再次使用,但要有所不同。由于已命名为url,因此我们需要知道如何获取调用当前视图的url的名称。 编辑2:另一个用例是根据基础模板不同地显示基础模板的各个部分。还有其他方法(使用CSS和{%block%},但有时如果视图名称与链接匹配,能够删除base.html菜单项的标签就很好了。

6
没有尾部斜杠的Django URL不会重定向
我在两个不同的计算机上有两个应用程序。在计算机A上,urls.py文件中的行如下所示: (r'^cast/$', 'mySite.simulate.views.cast') 该网址对mySite.com/cast/和都适用mySite.com/cast。但是在计算机BI上,有一个类似的url写成: (r'^login/$', 'mySite.myUser.views.login') 由于某种原因,计算机B上的url mySite.com/login/可以正常工作,但mySite.com/login会挂起并且不会mySite.com/login/像计算机A上那样直接返回。这两个url.py文件对我来说都一样。

6
使用{%url ??? django模板中的%}
我在google上寻找了很多有关如何在模板中使用'url'标记的答案,只是找到了许多回答,说“您只需将其插入模板并指向您想要url的视图”。好吧,对我来说不高兴:(我已经尝试了所有可能的排列方式,并且不得不在这里发表文章作为最后的选择。 就是这样 我的urls.py看起来像这样: from django.conf.urls.defaults import * from login.views import * from mainapp.views import * import settings # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Example: # (r'^weclaim/', include('weclaim.foo.urls')), (r'^login/', login_view), (r'^logout/', logout_view), ('^$', main_view), # Uncomment the admin/doc …

2
如何在Django中为同一参数使用多个变量处理request.GET
在Django视图中,您可以访问request.GET['variablename'],因此在视图中您可以执行以下操作: myvar = request.GET['myvar'] 实际的request.GET['myvar']对象类型是: <class 'django.http.QueryDict'> 现在,如果要传递具有相同参数名称的多个变量,即: http://example.com/blah/?myvar=123&myvar=567 您想要list为参数返回python myvar,然后执行以下操作: for var in request.GET['myvar']: print(var) 但是,当您尝试仅获得url中传递的最后一个值时,即在上面的示例中,您将获得567,而在shell中的结果将是: 5 6 7 但是,当您打印request.GET它时,它似乎带有一个listie: <QueryDict: {u'myvar': [u'123', u'567']}> 确定更新:它旨在返回最后一个值,我的用例是我需要一个列表。 来自Django文档: QueryDict。getitem(键)返回给定键的值。如果键具有多个值,则 getitem()返回最后一个值。如果键不存在,则引发django.utils.datastructures.MultiValueDictKeyError。(这是Python标准KeyError的子类,因此您可以坚持捕获KeyError QueryDict.getlist(key)以Python列表形式返回带有请求的键的数据。如果键不存在,则返回一个空列表。保证返回某种列表。 更新:如果有人知道django开发人员为什么要这样做,请告诉我,显示列表似乎违反直觉,并且它的行为不像一个。不是很pythonic!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.