Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django错误u“';民意调查;不是已注册的命名空间_Django_Namespaces - Fatal编程技术网

Django错误u“';民意调查;不是已注册的命名空间

Django错误u“';民意调查;不是已注册的命名空间,django,namespaces,Django,Namespaces,昨天,我正在使用本教程开发我的第一个应用程序。这是一个民意调查和选择应用程序。 第一个页面显示问题,当你点击问题时,它会显示你可以投票的选项 昨天有很多人帮了我,告诉我使用名称空间。我已经阅读了名称空间教程,并尝试应用我的知识 但到目前为止还不起作用 这是我点击第一页的问题时的错误 NoReverseMatch at /polls/5/ u"'polls" is not a registered namespace Request Method: GET Request URL

昨天,我正在使用本教程开发我的第一个应用程序。这是一个民意调查和选择应用程序。 第一个页面显示问题,当你点击问题时,它会显示你可以投票的选项

昨天有很多人帮了我,告诉我使用名称空间。我已经阅读了名称空间教程,并尝试应用我的知识 但到目前为止还不起作用

这是我点击第一页的问题时的错误

 NoReverseMatch at /polls/5/

 u"'polls" is not a registered namespace

 Request Method:    GET
 Request URL:   http://127.0.0.1:8000/polls/5/
 Django Version:    1.4.3
 Exception Type:    NoReverseMatch
 Exception Value:   

 u"'polls" is not a registered namespace

 Exception Location:    C:\hp\bin\Python\Lib\site-packages\django\template\defaulttags.py in render, line 424
 Python Executable:     C:\hp\bin\Python\python.exe
 Python Version:    2.5.2
 Python Path:   

 ['C:\\djcode\\mysite',
  'C:\\hp\\bin\\Python\\python25.zip',
  'C:\\hp\\bin\\Python\\DLLs',
  'C:\\hp\\bin\\Python\\lib',
  'C:\\hp\\bin\\Python\\lib\\plat-win',
  'C:\\hp\\bin\\Python\\lib\\lib-tk',
  'C:\\hp\\bin\\Python',
  'C:\\hp\\bin\\Python\\lib\\site-packages',
  'C:\\hp\\bin\\Python\\lib\\site-packages\\win32',
  'C:\\hp\\bin\\Python\\lib\\site-packages\\win32\\lib',
  'C:\\hp\\bin\\Python\\lib\\site-packages\\Pythonwin']

 Server time:   Fri, 15 Feb 2013 21:04:10 +1100
 Error during template rendering

 In template C:\djcode\mysite\myapp\templates\myapp\detail.html, error at line 5
 u"'polls" is not a registered namespace
 1  <h1>{{ poll.question }}</h1>
 2  
 3  {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
 4  
 5  {% url 'polls:vote' poll.id %}
 6  {% csrf_token %}
 7  {% for choice in poll.choice_set.all %}
 8  <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
 9  <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />
 10     {% endfor %}
 11     <input type="submit" value="Vote" />
 12     </form>
我的应用程序文件夹名为myapp,这是myapp URLconf: C:\djcode\mysite\myapp

 from django.conf.urls import patterns, include, url
 from django.contrib import admin
 from django.conf import settings

 from django.conf.urls import patterns, include, url

 urlpatterns = patterns('myapp.views',
     url(r'^$', 'index'),
     url(r'^(?P<poll_id>\d+)/$', 'detail'),
     url(r'^(?P<poll_id>\d+)/results/$', 'results'),
     url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),


)
My detail.html C:\djcode\mysite\myapp\templates\myapp

 <h1>{{ poll.question }}</h1>

 {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}

 {% url 'polls:vote' poll.id %}
 {% csrf_token %}
 {% for choice in poll.choice_set.all %}
     <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
     <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />
 {% endfor %}
 <input type="submit" value="Vote" />
 </form>
{{poll.question}
{%if error\u message%}{{{error\u message}{%endif%}
{%url'投票:投票'poll.id%}
{%csrf_令牌%}
{poll.choice_set.all%}
{{choice.choice_text}}
{%endfor%}
从django.conf.url导入模式,包括,url
从django.contrib导入管理
从django.conf导入设置
urlpatterns=patterns('myapp.views',
url(r'^$',index',name=“index”),
url(r'^(?P\d+/$,'detail',name=“detail”),
url(r'^(?P\d+)/results/$,“results”,name=“results”),
url(r'^(?P\d+)/vote/$,'vote',name=“vote”),
)
----------------------------------    
{{poll.question}
{%if error\u message%}{{{error\u message}{%endif%}
{%csrf_令牌%}
{poll.choice_set.all%}
{{choice.choice_text}}
{%endfor%}
您需要在detail.html的顶部添加以下行:

{% load url from future %}

(注意,为了使用轮询名称空间,您已经在index.html中使用了这一行)

答案是将名称空间添加到根URLconf中。在mysite/urls.py文件(项目的urls.py,而不是应用程序的)中,继续并将其更改为包含名称空间:

urlpatterns = patterns('',
url(r'^polls/', include('polls.urls', namespace="polls")),
url(r'^admin/', include(admin.site.urls)),
)
此外,在本教程的第3部分中,使用app_name是添加轮询名称空间的公认方式。您可以在
polls/url.py
中为此添加行,如下所示:

app_name = 'polls'
urlpatterns = [
    ...
]
更换线路:
{%url'投票:投票'poll.id%}
与:
{%url'vote'poll.id%}

为我解决了…

重新启动web服务器。仅此而已。

遵循相同的Django教程并使用相同的名称, 我不得不在
mysite/url.py
发件人:

致:


命名空间应添加到polls/url.py文件中

url(r'^myapp/$', include('myapp.urls',  namespace ='myapp')),

在myapp/url.py中添加以下模块级属性:

app_name = "polls"
这将为该应用程序设置“应用程序命名空间名称”。当您反向使用“polls:submit”这样的名称时,Django将查看两个位置:应用程序名称空间(如上所述设置)和实例名称空间(使用“url”函数中的namespace=参数设置)。如果您的项目中有多个应用程序实例,则后者很重要,但通常是您想要的前者

我遇到了这个问题,在url()函数中设置namespace=似乎有点错误

请参见本教程的以下条目:


更新:此信息适用于Django 1.9。在1.9之前,向include添加namespace=属性确实是正确的方法。

我认为您错过了名称空间:

urlpatterns = patterns('',
    url(r'^polls/', include('polls.urls', namespace="polls")),
)

问题在教程中。 在将名称空间(在“myapp”中)添加到URLconf时,本教程使用以下行代码:

app_name = 'myapp'
出于某种原因,Django框架将其视为unicode字符串。请用双引号而不是单引号将应用程序的名称括起来。 比如说,

app_name = "myapp"

这肯定会解决你的问题。我也遇到了同样的问题,这样就解决了它。

Django 2.0

在yourapp/url.py中

url.py中

适用于使用“django主机”的任何人:

我也有同样的错误,对我来说,将此添加到我的模板解决了它(没有名称空间等的任何us):

{%load hosts%}
另外,我在我的settings.py中添加了
PARENT\u HOST='YOUR\u PARENT\u HOST'


我也面临同样的问题。 现在通过添加
app\u name=”“
app/url.py

中,在模板顶部添加
{%load url from future%}
,或者尝试删除url标记中围绕
'polls:vote'
的引号。我试过了,它说TemplateSyntaxError at/polls/3/。感谢您尝试帮助我您使用的是哪个版本的django,您是否尝试过在不更改报价的情况下从future添加模板标记加载url?django版本:1.4.3,几天来我出现了这个错误,但我只是忽略了它,但现在我正在尝试解决这个问题。@cathy,上次我用python anywhere做了错误的版本,我想我会忽略它,但现在我用我的电脑做了。我不知道该怎么办,你能帮我吗!对不起,我又发了这个问题。上一次我发布它时,我使用了一个名为python anywhere的在线python,我阅读了错误的教程版本,但现在我使用的是正确版本的计算机,我仍然收到了这个错误。不,它仍然不起作用@cathy。我想这是detail.html,但我不知道你认为这可能是我的设置.py吗?我尝试在模板顶部{%load url from future%}并删除{%url'polls:vote'poll.id%}中的引号,但它只是显示语法错误。那么,刚才发生了什么?我们是否也可以下载该文件?我也遇到了同样的错误。请注意“名称空间”一词实际上,这不是推荐的方式,当你说“polls:…”时,它会出现在两个名称空间中,应用程序名称空间和实例名称空间。在URL上设置“namespace”属性会将路由器添加到实例名称空间中。通常,您只需要使用应用程序名称空间,方法是将app_name=“polls”添加到polls/url.py中。硒
url(r'^myapp/$', include('myapp.urls',  namespace ='myapp')),
app_name = "polls"
urlpatterns = patterns('',
    url(r'^polls/', include('polls.urls', namespace="polls")),
)
app_name = 'myapp'
app_name = "myapp"
from django.urls import path
from . import views

app_name = 'yourapp'

urlpatterns = [
    path('homepage/', views.HomepageView.as_view(), name='homepage'),
]
from django.contrib import admin
from django.urls import path, include


urlpatterns = [
    path('admin/', admin.site.urls),
    path('yourapp/', include('yourapp.urls')),
    ]
{% load hosts %}
<a href="{% host_url 'YOUR_URL' host 'YOUR_HOST' %}">Admin dashboard</a>