django - django url 模式的 url 参数未正确传递
问题描述
错误传递的参数发生错误
是不是动作设置错了?url参数是否设置错误?和 page_user : {{page_user}} category_id : {{category_num}} 打印正常我不确定视图是否有问题。
如果你知道什么是共振谢谢让我知道
代码:
<form method="post" action={% url "wm:new_comment_for_skilpage" user_name=page_user category_id=category_num %}>{% csrf_token %}
..
</form>
和 url 模式是这样的
path('new_comment_for_skilpage/<str:user_name>/<int:category_id>/' , views.new_comment_for_skilpage, name="new_comment_for_skilpage"),
观点是这样的
def new_comment_for_skilpage(request, pk):
user_name = request.GET.get('user_name')
category_id = request.GET.get('category_id')
if request.method == 'POST':
comment_form = CommentForm(request.POST)
if comment_form.is_valid():
comment = comment_form.save(commit=False)
comment.author = user_name
comment.category_id = category_id
comment.save()
return redirect('/wm/myshortcut/'+user_name+"/"+category_id)
else:
return redirect('/wm/myshortcut/'+user_name+"/"+category_id)
错误:
TypeError: new_comment_for_skilpage() got an unexpected keyword argument 'user_name'
解决方案
def new_comment_for_skilpage(request, user_name, category_id):
user_name = request.GET.get('user_name')
category_id = request.GET.get('category_id')
if request.method == 'POST':
comment_form = CommentForm(request.POST)
if comment_form.is_valid():
comment = comment_form.save(commit=False)
comment.author = user_name
comment.category_id = category_id
comment.save()
return redirect('/wm/myshortcut/'+user_name+"/"+category_id)
else:
return redirect('/wm/myshortcut/'+user_name+"/"+category_id)
推荐阅读
- amazon-web-services - 用于将日志从 EKS(非 Fargate)传送到 AWS Elasticsearch 的 Terraform 模块
- powershell - 使用 Exit 与 Break 完全完成脚本运行
- html - 如何使div间隙更短?
- css - React 模拟窗口调整大小
- c# - 如何使用 web api 和 angular 从字节下载文件
- java - 在 Java SpringBoot 中从 Google Dialogflow 获取原始响应 JSON
- python - 如何将 html 输入 \t 读取为选项卡而不是 \\t
- c++ - 用于删除给定类的复制 ctor、赋值运算符的通用宏
- java - java中基于货币和当前日期查找前一个工作日的优雅方式
- python - 使用 Python 和 Selenium 将 Recaptcha 的响应(从 CapMonster 接收)提交到“g-recaptcha-response”