我有以下型號如何在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())
我使用的Django taggit和Django的taggit-templatetags。當我提出這樣的觀點:
@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))
與模板類似
{% 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>
兩款車型有TaggableManager。當我爲兩個模型中的任何一個製作標記列表時,我得到錯誤的num_times值。我得到的num_times是上述兩個模型中特定標記發生的次數(例如71)。我只想要標註在註釋模型(50)中出現的次數。
我認爲這個問題是在此代碼的48行:https://github.com/feuervogel/django-taggit-templatetags/blob/master/taggit_templatetags/templatetags/taggit_extras.py
它用來taggit_taggeditem_items
通話。我不知道這是從哪裏來的。在數據庫中我有:taggit-tag(colums:id,name,slug)和taggit_taggeditem(id,tag_id,object_id,content_type_id)。我不知道它在哪裏得到_items
位,但我認爲它來自taggit的models.py BaseClass。
問題出在unicode方法(它使用兩種模型中的文本)嗎?
總之,我想要一個特定模型的tagcloud或標籤列表。如何使用taggit和taggit-templatetags(或其他選項)來計算每個模型的標籤頻率(num_times)?
謝謝。