0

在使用python-socketios django_example 并看到它运行良好之后,我创建了一个新的 django 项目,像示例一样对其进行配置,将示例应用程序复制到项目中(完成它覆盖了 runserver 管理命令)。一切正常,我可以进行一些更改,以便您可以设置一个nick,一些 redis 的东西来查找 sid 的 nick,并且能够支持向 nick 发送私人消息。一切仍然很好。

我认为下一个合乎逻辑的步骤是,而不是手动设置昵称,要求用户登录,将他们的用户名公开为模板中脚本块中的 var(我移至scripts/index.htmltemplates/index.html,并自动让 javascript 发出我的连接时自动使用用户名自定义“set_nick”事件。

LOGIN_URL = '/accounts/login'settings.py中定义,在我的urls.py中包含 'django.contrib.auth.urls'并用@login_required.

直到那时我才注意到,无论您请求什么 URL,您总是会获得聊天应用程序索引视图 - 没有登录页面重定向,“/admin/”被忽略等。

编辑已解决 - 请参阅下面的答案。

4

1 回答 1

0

我注意到urls.py我从示例中盲目复制的内容如下所示:

url(r'', include('socketio_app.urls')),
url(r'^admin/', admin.site.urls), 

r''罪魁祸首(匹配一切)。将其更改为:

url(r'^/', include('socketio_app.urls)),
url(r'^admin/', admin.site.urls),

但是,我使用的是 Django==1.11。我相信Django 2 倾向于建议使用path(或一些类似名称的函数)而不是使用url. 但是,我相信urlDjango 2 中的语义不同,所以这可能也是 Django 2 用户的问题。

于 2019-01-13T11:44:09.973 回答