首页 > 解决方案 > 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'

标签: djangourl

解决方案


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)

推荐阅读