2012-12-14 18 views
7

Dopo aver letto molto sull'uso corretto di una lumaca per creare una vista di dettaglio da un elenco di oggetti. Tuttavia, ho ancora problemi a farlo funzionare per me. Io sono la visualizzazione di un elenco di oggetti nel mio modello come:Slug Url Regex in Django

{% for thing in thing_list %} 
    <div class='thing-detail'><a href='{% url detail %}'><img src='theimage.png' /> 
{% endfor %} 

Ma sto ottenendo un errore NoReverseMatch su detail.

Immagino che ci sia qualcosa di sbagliato nella mia regex, o c'è solo un modo migliore di farlo che mi manca.

Regex:

url(r'^thing/(?P<slug>[\w-]+)/$', 'views.detail', name='detail'), 

Vista:

def detail(request, slug): 
    thing = get_object_or_404(Thing, slug=slug) 
    return render(request, 'detail.html', {'thing': thing}) 

Modello:

class Thing(models.Model): 
    user = models.ForeignKey(User) 
    created_on = models.DateTimeField(auto_now_add=True) 
    slug = models.SlugField() 

    def save(self, **kwargs): 
     slug = '%s' % (self.user) 
     unique_slugify(self, slug) ## from http://djangosnippets.org/snippets/1321/ 
     super(Thing, self).save() 

Grazie per l'aiuto!

risposta

7

Non stai passando alcun argomento per creare l'URL detail. Probabilmente si vuole fare questo:.

{% url "detail" thing.slug %} 

che creerà un'URL detail con il dato lumaca compilato

+0

penso "dettaglio" deve essere avvolto tra virgolette .. – mccc