2013-07-28 3 views
0

나는 다음과 같은 모델django-taggit-templatetags에서 잘못된 num_times를 수정하는 방법은 무엇입니까?

class Text(models.Model): 
    text = models.CharField(max_length=10000, blank=True) 
    tags = TaggableManager(blank=True) 
    author = models.ForeignKey(User) 
    date_created = models.DateTimeField(auto_now_add=True) 
    last_modified = models.DateTimeField(auto_now=True) # changes on each edit 
    public = models.BooleanField(default=1) 

    def __unicode__(self): 
     return self.text 

class Note(models.Model): 
    note = models.CharField(max_length=1000) 
    tags = TaggableManager(blank=True) 
    text = models.ManyToManyField(Text) 
    author = models.ForeignKey(User) 
    date_created = models.DateTimeField(auto_now_add=True) 
    last_modified = models.DateTimeField(auto_now=True) # changes on each edit 
    public = models.BooleanField(default=1) 

    def __unicode__(self): 
     return u'%s' % (self.text.all()) 

내가 장고 - taggit와 장고 - taggit-templatetags를 사용하고 있습니다. 나는이 같은 전망 할 때 :

{% extends 'base.html' %} 
{% load taggit_extras %} 

{% block content %} 

{% get_taglist as all_labels for 'notes' %} 
<div class="tag-cloud"> 
<ul> 
{% for label in all_labels %} 
<li> 
<a href="/labels/{{ label.slug }}"> 
    <font size={{label.weight|floatformat:0}}> 
    {{ label|capfirst }} ({{ label.num_times }}) 
    </font> 
</a> 
</li> 
{% endfor %} 
</ul> 
</div>  

같은 템플릿으로

@staff_member_required #TODO disadvantage: redirects to admin page 
def labels_all(request): 
    return render_to_response('labels_all.html', locals(), context_instance=RequestContext(request)) 

을 두 모델 모두 TaggableManager 있습니다. 두 모델 중 하나의 태그 목록을 만들 때 잘못된 num_times 값을 얻습니다. num_times는 위의 두 모델 (예 : 71)에서 특정 태그가 발생하는 횟수입니다. Note 모델 (50)에서 태그가 발생하는 횟수 만 필요합니다. 그것은 taggit_taggeditem_items에 대한 호출을 사용 https://github.com/feuervogel/django-taggit-templatetags/blob/master/taggit_templatetags/templatetags/taggit_extras.py

:

나는 문제가이 코드의 라인 (48)에 생각합니다. 나는 이것이 어디서 비롯되는지 모른다. 데이터베이스에는 taggit-tag (colums : id, name, slug) 및 taggit_taggeditem (id, tag_id, object_id, content_type_id)이 있습니다. 내가 어디서 _items 비트를 가져올 지 모르겠다.하지만 taggit의 models.py BaseClass에서 나온 것 같다.

두 모델 모두에서 텍스트를 사용하는 유니 코드 방법에 문제가있을 수 있습니까?

간단히 말해서 특정 모델에 대한 태그 클라우드 또는 태그 목록이 필요합니다. taggit 및 taggit-templatetags (또는 대안)를 사용하여 모델 당 태그 빈도 (num_times) 을 계산하려면 어떻게해야합니까?

감사합니다.

답변

0

앱 이름이 '메모'이며 TextNote은이 앱의 모델입니다. 당신이 모델에 사용 된 태그 만 원하는 경우

, 당신은 사용해야합니다 : 당신이 모델 주에서 사용되는 태그 만 원하는 경우

{% get_taglist as all_labels for 'notes.Text' %} 

, 당신은 사용해야합니다

{% get_taglist as all_labels for 'notes.Note' %}