2011-06-07 25 views
15

Projelerimden birinde django-taggit kullanıyorum ve etiketleri belirli kayıtlarla kaydedip bağlayabiliyorum. Şimdi soru, her kayıt ile ilgili etiketleri nasıl görüntüleyebilirim?django-taggit - Her kayıtla ilgili etiketleri nasıl görüntülerim

Örneğin, sayfamda bir başlık ve içerik içeren bir kayıt görüntülemek istiyorum ve altında bu kayda bağlı etiketleri göstermek istiyorum.

Views.py ve mytemplate.html'de ne gider? Gerçek örnekler gerçekten takdir edilecektir. Eğer acele y ise

cevap

27

models.py

from django.db import models 
from taggit.managers import TaggableManager 

class MyObject(models.Model): 
    title = models.CharField(max_length=100) 
    content = models.TextField() 

    tags = TaggableManager() 

views.py

from django.views.generic import simple 

def show_object(request): 
    """ View all objects """ 
    return simple.direct_to_template(request, 
     template="folder/template.html", 
     extra_context={ 
      'objects':MyObject.objects.all(), 
     }) 

template.html

{% for object in objects %} 
    <h2>{{ object.title }}</h2> 
    <p>{{ object.content }}</p> 
    <ul> 
     {% for tag in object.tags.all %} 
      <li> {{ tag.name }} </li> 
     {% endfor %} 
    </ul> 
{% endfor %} 
+0

Teşekkür ederiz! Harika örnek! – avatar

+0

bu, sahip olduğunuz her nesne için ek bir db sorgusu oluşturacaktır. Eğer çok fazla nesneniz varsa, bu gerçekten işleri yavaşlatabilir. Ben buna koştum ve bir çözüm arıyorum. – teewuane

+0

Biraz gecikme yanıtı @teewuane ama evet haklısın. Önceden –

13

Ayrıca şunları da deneyebiliriz:

{{context_name.tags.all|join:", "}} 
+1

Bu tam olarak ihtiyacım olan şeydi. – Pureferret

İlgili konular