2016-04-07 4 views
0

Хорошо, так что я пытаюсь удалить «opcao», связанный с «questao» В моем HTML У меня есть эта кнопка:Джанго TypeError получила неожиданный ключевое слово аргумента «opcao_id»

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

, что приводит к этот URL-адрес:

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

Где находится 'questao_id' в шаблоне url? – AKS

ответ

2

Вы определены только один аргумент с именем opcao_id в определении URL-адреса, но у вас есть 2 параметра в ваших взглядах opcao_id и questao_id, которые, конечно, не будут работать. Вы должны либо добавить questao_id в определение вашего URL, либо удалить его из своей функции просмотров.

Проверить django doc on how url parameters work with views function.

Смежные вопросы