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

Python - erro ao realizar Index | Aula 6. Convidando perfis

O código está realmente correto, porem acusa este erro na linha 15.

Reverse for 'index' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

<meta charset="utf-8">
6        <title>ConnectedIn</title>
7    
8        <link rel="stylesheet"  href="{%  static "styles/bootstrap.css" %}">
9        <link rel="stylesheet"  href="{%  static "styles/main.css" %}">
10    
11    </head>
12        <body>
13            <div class="header">
14                <ul class="nav nav-pills pull-right">
15                    <li><a href="{% url 'index' %}"></a>NOME</li>
16                    <li><a href="/logout/"></a>logout</li>
17                </ul>
18                <h3 class="text-muted">ConnectedIn</h3>
19            </div>
20    
21            <h1>Seja bem vindo ao Connectedin</h1>
22    
23            {% if perfis %}
24            <ul>
25                {% for perfil in perfis %}

views.py

from django.shortcuts import render, redirect
from django.http import HttpResponse
from perfis.models import Perfil

def index(request):
    return render(request, 'index.html', {"perfis" : Perfil.objects.all()})

def exibir(request, perfil_id):

    perfil = Perfil.objects.get(id=perfil_id)

    return render(request, 'perfil.html', {"perfil" : perfil})    

def convidar(request, perfil_id):
    perfil_a_convidar = Perfil.objects.get(id=perfil_id)
    perfil_logado = get_perfil_logado(request)
    perfil_logado.convidar(perfil_a_convidar)
    return redirect('index')

def get_perfil_logado(request):
    return Perfil.objects.get(id=1)

urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin
from perfis import views

urlpatterns = patterns('',

    url(r'^$', views.index),
    url(r'^perfis/(?P<perfil_id>\d+)$', views.exibir, name='exibir'),
       url(r'^perfis/(?P<perfil_id>\d+)/convidar$', views.convidar, name='convidar')
)

models.py

from django.db import models

class Perfil(models.Model):

    nome = models.CharField(max_length=255, null=False)
    email = models.CharField(max_length=255, null=False)
    telefone = models.CharField(max_length=15, null=False)
    nome_empresa = models.CharField(max_length=255, null=False)

    def convidar(self, perfil_convidado):
        Convite(solicitante = self, convidado = perfil_convidado).save()

class Convite(models.Model): #implementa um relacionamento
        solicitante = models.ForeignKey(Perfil, related_name='convites_feitos') 
        convidado = models.ForeignKey(Perfil, related_name='convites_recebidos')
2 respostas
solução!

Silvânio, deu sorte deu achar sua dúvida em offtopic. Dúvidas em offtopics são aquelas que não dizem respeito ao curso. Você teria que ter postado no fórum do curso.

Bom, vamos lá. O provável erro é a ausência da configuração da rota nomeada index usada na função redirect.

Verifique em seu connectedin/perfis/urls.py se você tem a rota url(r'^$', views.index, name='index').

Perfeito Flavio era exatamente este o problema, perfeito....