Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Aula 9 - convite.id

No botão de "aceitar", eu coloco como parâmetro o convite.id. Isso acontece porque eu criei a classe Convite que automaticamente gerou uma tabela no meu banco e também automaticamente criou o campo id nesta tabela?

<a href="{% url 'aceitar' convite.id %}" class="pull-right">aceitar</a>

Apesar de já ter estudado bastante java aqui no Alura, ainda nao havia mexido em nada com BD, então tudo que era instanciado, eu via no próprio código. Acho que é esta abstração que estou tendo dificuldade de entender neste curso. Existe alguma dica para entender melhor essas relações? Ou é algo que vou adquirindo com a prática? Obrigado.

2 respostas

Minha dúvida surgiu devido a este impasse:

No arquivo base.html existe este link:

<li class=""><a href="{% url 'index' %}">{{ perfil_logado.nome }}</a></li>

Que eu estou tentando transformar para isso (sem sucesso):

<li class=""><a href="{% url 'exibir' perfil.id %}">{{ perfil_logado.nome }}</a></li>

Recebo o erro:

NoReverseMatch at /
Reverse for 'aceitar' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['convite/(?P<convite_id>\\d+)/aceitar$']
Request Method:    GET
Request URL:    http://localhost:8000/
Django Version:    1.7.4
Exception Type:    NoReverseMatch
Exception Value:    
Reverse for 'aceitar' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['convite/(?P<convite_id>\\d+)/aceitar$']

Eu consegui resolver este impasse desta forma:

<li class=""><a href="{% url 'exibir' perfil_logado.id %}">{{ perfil_logado.nome }}</a></li>

Mas minha dúvida permanece. Obrigado.

solução!

Django é baseado em convenção. A maior vantagem disso é a rapidez na criação dr aplicações web. Contudo esa vantagem traz a destantagem de que essa abstração esconde coisas demais e muitas vezes nos sentimos reféns do framework.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software