Python 与#x27相反;创建聊天室&x27;带参数';(';';,)';没有找到。尝试了1种模式:[';创建聊天/(?P<;id>;[0-9]+;)/$&]
我正在构建聊天应用程序,我正在使用Django版本3.8.1。我被错误缠住了 此视图用于与私人好友聊天 views.pyPython 与#x27相反;创建聊天室&x27;带参数';(';';,)';没有找到。尝试了1种模式:[';创建聊天/(?P<;id>;[0-9]+;)/$&],python,html,django,django-views,Python,Html,Django,Django Views,我正在构建聊天应用程序,我正在使用Django版本3.8.1。我被错误缠住了 此视图用于与私人好友聊天 views.py def create_chat(request,id): from_user = get_object_or_404(User,id=id) user1 = request.user user2 = from_user chat_box = ChatBox(user_1=user1,user_2=user2) chat_box.sav
def create_chat(request,id):
from_user = get_object_or_404(User,id=id)
user1 = request.user
user2 = from_user
chat_box = ChatBox(user_1=user1,user_2=user2)
chat_box.save()
url.py
path('create_chat/<int:id>/',views.create_chat,name='create_chat'),
path('create_chat/',views.create_chat,name='create_chat'),
profile.html
<a href="{% url 'create_chat' from_user.id %}">Chat</a>
问题
当我在浏览器中打开profile.html时,发生了一个名为:-Reverse的错误,未找到参数为“(”)”的“create_chat”。尝试了1种模式:[“创建聊天室/(?P[0-9]+)/$”]
我将非常感谢你的帮助。提前感谢。您必须将变量从用户传递到模板,如下所示:
def create_chat(request,id):
from_user = User.objects.get(id=id)
user1 = request.user
user2 = from_user
chat_box = ChatBox(user_1=user1,user_2=user2)
chat_box.save()
context = {
'from_user': from_user,
...
...
}
return render(request, 'mytemplate.html', context)
必须将变量从用户传递到模板,如下所示:
def create_chat(request,id):
from_user = User.objects.get(id=id)
user1 = request.user
user2 = from_user
chat_box = ChatBox(user_1=user1,user_2=user2)
chat_box.save()
context = {
'from_user': from_user,
...
...
}
return render(request, 'mytemplate.html', context)
您应该在url.py中提到
app_name = "app_name"
在模板中
<a href="{% url 'app_name:create_chat' from_user.id %}">Chat</a>
它应该可以工作您应该在url.py中提到
app_name = "app_name"
在模板中
<a href="{% url 'app_name:create_chat' from_user.id %}">Chat</a>
它应该可以工作未知自_user.id,请检查此项variable@Ihar对不起,我不明白。请上传作为答案。您能显示呈现
profile.html
的视图吗variable@Ihar对不起,我不明白。请上传作为答案。您能显示呈现profile.html
的视图吗?我已经创建了一个模板。我把一个链接,开始在用户的个人资料聊天。我不需要渲染到某个模板。这就是为什么我没有创建任何模板。顺便说一句,我遵循了你的答案,但我得到了同样的错误。但我真的很感谢你的努力。谢谢你能再给我一个建议吗?请在你的模板中检查你从_user.id变量中得到的东西,可能有一个空的。它只是从_user.id打印模板插入{{from _user.id}},然后看,会显示什么我已经创建了一个模板。我把一个链接,开始在用户的个人资料聊天。我不需要渲染到某个模板。这就是为什么我没有创建任何模板。顺便说一句,我遵循了你的答案,但我得到了同样的错误。但我真的很感谢你的努力。谢谢你能再给我一个建议吗?请在你的模板中检查你从_user.id变量中得到的东西,可能有一个空的,它只是从_user.id模板插入{{from _user.id}}打印出来的,然后看,会显示什么我做了,但没有任何效果我得到了<代码>与关键字参数{id':''相反的“创建_聊天”'未找到。id是空的,它的意思是id没有传递我认为你对它进行调试是正确的我认为一个简单的方法是将at打印到命令行,然后查看它将打印什么我做了,但没有任何效果对于带有关键字参数'{id':''的'create_chat',我得到了相反的结果'未找到。
id为空,它的意思是id未通过。我认为您可以调试它。我认为一种简单的方法是将at打印到命令行中,然后查看它将打印什么