非常基本的问题,但我无法在networking上追踪答案。 我有一个模板,我想链接到Django的pipe理网站(即本地主机:8000 /pipe理)。 这是什么代码? 我正在想像这样的事情 <a href="{% url admin.site.root %}">link to admin panel</a> 但是,当我尝试上面的代码片段时,我得到: Caught an exception while rendering: Reverse for 'project_name.django.contrib.admin.sites.root' with arguments '()' and keyword arguments '{}' not found. 帮帮我?
我有一个视图来validation和保存表单。 表单保存后,我想redirect到一个list_object视图与成功消息“客户xyz表单已成功更新…” HttpResponseRedirect似乎不会工作,因为它只有一个URL的参数,没有办法传递字典。 我已经尝试修改我的包装object_list采取字典作为具有必要的上下文的参数。 我从保存表单的视图中返回对这个包装器的调用。 但是,当页面呈现时,url是'/ customer_form /'而不是'/ list_customers /'。 我尝试修改请求对象之前,它传递给object_list包装,但没有奏效。 谢谢。
我对django相当陌生,但在Python和java web编程方面经历了不同的框架。 我已经使自己一个很好的小Django应用程序,但我似乎不能使它匹配www.mysite.com而不是www.mysite.com/myapp。 我已经在我的urls.conf中定义了urls和views,而这些urls.conf目前还没有与app分离(不介意)。 urlpatterns = patterns('myapp.views', (r'^myapp/$', 'index'), (r'^myapp/(?P<some_id>\d+)/global_stats/$', 'global_stats'), (r'^myapp/(?P<some_id>\d+)/player/(?P<player_id>\d+)/$', 'player_stats'), ) 所有这一切都像一个魅力。 如果有人去www.mysite.com/myapp他们会打我的索引视图,导致httpredirect到我的“正确的”默认url。 那么,如何添加一个与(r'^ myapp / $','index')相同但没有/ myapp的模式?也就是说,www.mysite.com应该足够了吗? 我会认为这将是非常基本的东西…我试着添加一行: (r'^$', 'index'), 然而,这引起了我的循环… 希望你django大师在那里可以为我澄清这一点!
我已经看了很多关于如何在模板中使用'url'标签的谷歌寻找答案,以find许多答复说'你只需将其插入到您的模板,并指出你想要的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 line below and add […]
在Django视图等你可以访问request.GET ['variablename'] ,所以在你的观点,你可以返回做这样的事情: myvar = request.GET['myvar'] 实际的request.GET ['myvar']对象types是: <class 'django.http.QueryDict'> 现在,如果你想传递相同的参数名称,即多个variables http://example.com/blah/?myvar=123&myvar=567 换句话说,你想为参数myvar返回一个python 列表 基本上我想要做的就是这样的事情 for var in request.GET['myvar']: print var 然而,当你尝试,你只能得到最后一个值在URL中传递,即在上面的例子中,你将得到567 在shell中的结果是: 5 6 7 但是,当你做一个request.GET打印好像它有一个列表,即: <QueryDict: {u'myvar': [u'123', u'567']}> 确定更新:它的目的是返回最后一个值,我的用例是我需要一个列表。 来自django文档: 的QueryDict。 getitem (key)返回给定键的值。 如果键值不止一个, getitem ()返回最后一个值。 如果键不存在,则引发django.utils.datastructures.MultiValueDictKeyError。 (这是Python的标准KeyError的一个子类,所以你可以坚持捕获KeyError QueryDict.getlist(key)以Python列表的forms返回包含请求键的数据。 如果键不存在,则返回空列表。 保证返回某种列表。 更新:如果有人知道为什么Django的开发者已经这样做,请让我知道,似乎反直觉显示一个列表,它不像一个行为。 不是非常pythonic!
我怎样才能看到“反向”正在寻找目前的urlpatterns? 我以一种我认为应该起作用的观点来回应,但不是。 任何方式,我可以检查有什么,为什么我的模式不是?
我有两个应用程序位于两台独立的计算机上。 在计算机A上,在urls.py文件中,我有一行如下所示: (r'^cast/$', 'mySite.simulate.views.cast') 该url将同时适用于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文件看起来都和我一样。
我被static root困惑,想澄清事情。 要在Django中提供静态文件,请在settings.py和urls.py : import os PROJECT_DIR=os.path.dirname(__file__) 1.应该收集静态文件的目录的绝对path 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} )) 我们也使用python manage.py collectstatic 问题: 任何人都可以请解释我的工作stream程:理想的情况下应该怎么做。 截至目前,我复制/粘贴上述代码片段到他们指定的位置,并继续在静态目录中创build新文件,它的工作原理。 在我的settings.STATIC_ROOT ,但是,我指出了一个不同的目录。 如果有人能够解释每个环境的工作stream程:如何收集和pipe理文件,以及遵循什么是一个好的做法,这将是非常好的。 谢谢。
我有这样的Djangourl: 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。
在Django 1.0之前,有一个简单的方法可以获得一个对象的pipe理url,并且我写了一个小的filter,像这样使用: <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] ) 得到的url。 正如你可能已经猜到了,我试图更新到最新版本的Django,这是我遇到的障碍之一,获取pipe理url的方法不再工作。 我怎么能在django 1.0中做到这一点? (或1.1,因为我试图更新到svn的最新版本)。