【问题标题】:Django templates not altering form actionDjango 模板不改变表单操作
【发布时间】: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 源呈现为

&lt;form action="/chat/message/[username]/" method="post"...

无论如何。我重新启动了服务器,确保我保存了更改,并且就像它有自己的想法一样,它总是/chat/message/[username]。当我将该 URL 反向更改为“收件箱”时,我应该会看到基于 URL 的聊天/收件箱。

【问题讨论】:

  • 从 shell 中输入 reverse('inbox') 的输出是什么?
  • 嗨 jbiz,我得到 reverse('chat:inbox') --> '/chat/inbox/' 我正确地将我的模板更新为 &lt;form action="{% url 'chat:inbox' %}" method="post"&gt; 并且仍然得到相同的 &lt;form action="/chat/message/username/" method="post"&gt;?! ?
  • 我试过你的代码,得到了预期的答案,也许你需要在这里发布更多代码?
  • 所以你需要{% url 'chat:inbox' %} 而不是{% url 'inbox' %}
  • 这不再是问题,我只是做了聊天:收件箱和同样的问题。无论我插入什么都无法正常工作,而且几个小时前它还在工作

标签: python django django-templates django-urls


【解决方案1】:

根据评论中的信息,form中需要{% url 'chat:inbox' %}而不是{% url 'inbox' %}

【讨论】:

    猜你喜欢
    • 2018-06-05
    • 1970-01-01
    • 2011-06-26
    • 2022-01-05
    • 2019-02-26
    • 1970-01-01
    • 2021-09-06
    • 2019-08-30
    • 2011-09-01
    相关资源
    最近更新 更多