繁体   English   中英

Django TypeError收到了意外的关键字参数'opcao_id'

[英]Django TypeError got an unexpected keyword argument 'opcao_id'

好的,所以我尝试删除与“ questao”相关的“ opcao”。在我的html中,我具有以下按钮:

<a href="{% url 'votacao:apagaopcao' questao.id %}">
    <button> Apagar Opção </button>
</a>

导致此网址:

url(r'^(?P<opcao_id>[0-9]+)/apagaopcao/$', views.apagaopcao, name="apagaopcao"),

这是该视图:

def apagaopcao(request, opcao_id, questao_id):
questao = get_object_or_404(Questao, pk=questao_id)
try:
    opcao_seleccionada = questao.opcao_set.get(pk=request.POST['opcao'])
except (KeyError, Opcao.DoesNotExist):
    # Apresenta de novo o form para votar
    return render(request, 'votacao/detalhe.html', {'questao': questao, 'error_message': "Não escolheu uma opção",})
else:
    opcao_seleccionada.delete()
    return render(request, 'votacao/detalhe.html', {'questao': questao})

它抛出了这个异常:

Exception Type: TypeError
Exception Value: apagaopcao() missing 1 required positional argument: 'questao_id'

我只是开始尝试弄清django,所以我在这里想念什么? 谢谢!!

您仅在url定义中定义了一个命名参数opcao_id ,但是您的视图中有2个参数opcao_idquestao_id当然不会起作用。 您应该在网址定义中添加questao_id ,或者将其从视图函数中删除。

查看django文档,了解url参数如何与视图功能一起使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM