好的,所以我试图删除一个" opcao"与a" questao"相关 在我的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弄出来,所以我在这里缺少什么?谢谢!!
答案 0 :(得分:2)
您只在网址定义中定义了一个命名参数opcao_id
,但您在视图opcao_id
和questao_id
中有2个参数,这当然不起作用。您应该在网址定义中添加questao_id
,或者从视图功能中删除它。
检查django doc on how url parameters work with views function。