Helo everyone,我有两个视图但我无法重定向到另一个视图查看。 在提出这个问题之前,我尝试了一些来自stackoverflow的解决方案,但是他们没有带来任何结果。请帮忙。
VIEWS.py
def new_room(request):
new_room = None
while not new_room:
with transaction.atomic():
label = haikunator.haikunate()
if Room.objects.filter(label=label).exists():
continue
new_room = Room.objects.create(label=label)
return redirect('chat', label=label)
def chat(request, label):
room, created = Room.objects.get_or_create(label=label)
messages = reversed(room.messages.order_by('-timestamp')[:50])
return render(request, "chat/room.html", {
'room': room,
'messages': messages,
})
URLS.PY
from django.conf.urls import include, url
from . import views
urlpatterns = [
url(r'^new/$', views.new_room, name='new_room'),
url(r'^(?P<label>[\w-]{,50})/$', views.chat, name='room'),
]
提前致谢!
答案 0 :(得分:0)
您对redirect
的调用看起来像是使用了函数的名称而不是命名视图的名称。我们需要确定你的urls.py。
请记住,redirect
使用reverse
- 您需要提供您在网址模式中使用的相同名称,以及任何必要的命名空间。如果您可以发布现有的urls.py文件,我可以尝试提供有关如何解决问题的更具体信息。在此期间,请查看有关如何使用redirect
的示例:https://docs.djangoproject.com/en/1.11/topics/http/shortcuts/#examples
答案 1 :(得分:0)
你应该在问题中显示你的url conf,重定向是通过命名的url,而不是函数名。
你的网址应该有:
from .views import chat
url(r'^chat/$', chat, name='chat')