【发布时间】:2015-07-01 00:25:30
【问题描述】:
我有一个 URL 文件 chat.urls.py:
`urlpatterns = patterns('',
url(r'^message/(?P<username>\w+)/$',views.message,name='message'),
url(r'^message/(?P<username>\w+)/submit/$',views.send_message,name='send_message'),
url(r'^inbox/$',views.inbox,name='inbox'),
url(r'^inbox/(?P<username>\w+)/$', views.inbox_by_user,name='inbox_by_user'),
)`
还有一个 message.html 模板,用于发送消息,格式如下:
<form action="{% url 'inbox' %}" method="post">
{% csrf_token %}
<input type="text" name="text" id="text" value="" />
<label for="message">Enter your message here</label><br />
<input type="submit" value="Send" />
</form>
我用以前的工作代码替换了“url 'inbox'”,无论我用什么替换表单操作,我总是将 html 源呈现为
<form action="/chat/message/[username]/" method="post"...
无论如何。我重新启动了服务器,确保我保存了更改,并且就像它有自己的想法一样,它总是/chat/message/[username]。当我将该 URL 反向更改为“收件箱”时,我应该会看到基于 URL 的聊天/收件箱。
【问题讨论】:
-
从 shell 中输入 reverse('inbox') 的输出是什么?
-
嗨 jbiz,我得到 reverse('chat:inbox') --> '/chat/inbox/' 我正确地将我的模板更新为
<form action="{% url 'chat:inbox' %}" method="post">并且仍然得到相同的<form action="/chat/message/username/" method="post">?! ? -
我试过你的代码,得到了预期的答案,也许你需要在这里发布更多代码?
-
所以你需要
{% url 'chat:inbox' %}而不是{% url 'inbox' %} -
这不再是问题,我只是做了聊天:收件箱和同样的问题。无论我插入什么都无法正常工作,而且几个小时前它还在工作
标签: python django django-templates django-urls