2012-12-14 25 views
7

Sau khi đọc rất nhiều về việc sử dụng đúng cách của một con sên để tạo ra một cái nhìn chi tiết từ một danh sách các đối tượng. Tuy nhiên, tôi vẫn gặp vấn đề với nó để làm việc cho tôi. Tôi đang hiển thị một danh sách các đối tượng trong mẫu của tôi như:Slug Url Regex trong Django

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

Nhưng nhận được một lỗi NoReverseMatch trên detail.

Tôi cho rằng có điều gì đó sai với regex của tôi, hoặc chỉ có cách tốt hơn để làm điều này mà tôi đang thiếu.

Regex:

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

Xem:

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

mẫu:

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() 

Cảm ơn bạn đã giúp đỡ!

Trả lời

7

Bạn không chuyển bất kỳ đối số nào để xây dựng URL detail. Bạn có thể muốn làm điều này:.

{% url "detail" thing.slug %} 

nào sẽ tạo ra một URL detail với sên được điền vào

+0

Tôi nghĩ rằng "chi tiết" nên được bọc trong dấu ngoặc kép .. – mccc

Các vấn đề liên quan