为了账号安全,请及时绑定邮箱和手机立即绑定

类型错误:loadshortlink() 为参数“shortlink”获得了多个值

类型错误:loadshortlink() 为参数“shortlink”获得了多个值

斯蒂芬大帝 2021-06-08 02:07:48
错误:类型错误:loadshortlink() 为参数“shortlink”获得了多个值我的 urls.py:path('s/<str:shortlink>',views.loadshortlink, name="get_longlink")视图.py:def loadshortlink(shortlink):    print("Translating short link %s" % shortlink)    link = get_longlink(shortlink)    return render(request, 'shortlinks/openlong.html', {        'link': link    })def get_longlink(shortlink):    print('Short link is %s' % shortlink)    links = Links.objects.filter(shortlink=shortlink)    if len(links)>1 or len(links)==1:        link = links[0].longlink        return link    else:        return 'No matched long links'当我访问网址时:http : //127.0.0.1 : 8000/s/4nI我收到错误:Internal Server Error: /s/4nITraceback (most recent call last):File "/home/joel/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner    response = get_response(request)File "/home/joel/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response    response = self.process_exception_by_middleware(e, request)File "/home/joel/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response    response = wrapped_callback(request, *callback_args, **callback_kwargs)TypeError: loadshortlink() got multiple values for argument 'shortlink'为什么会这样?
查看完整描述

2 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

视图函数的第一个参数应该是请求。您需要将其添加到loadshortlink:


def loadshortlink(request, shortlink):

    print("Translating short link %s" % shortlink)

    link = get_longlink(shortlink)

    return render(request, 'shortlinks/openlong.html', {

        'link': link


    })


查看完整回答
反对 回复 2021-06-09
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

实际上,它无法处理请求,因为 loadshortlink 方法缺少请求参数。你的代码应该是:


def loadshortlink(request, shortlink):

    print("Translating short link %s" % shortlink)

    link = get_longlink(shortlink)

    return render(request, 'shortlinks/openlong.html', {

        'link': link


    })


def get_longlink(shortlink):

    print('Short link is %s' % shortlink)

    links = Links.objects.filter(shortlink=shortlink)

    if len(links)>1 or len(links)==1:

        link = links[0].longlink

        return link

    else:

        return 'No matched long links'


查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号