python - “标签”对象没有属性 'count'

标签 python django

当我访问开发服务器时,我不断收到此错误,提示“Tag”对象没有属性“count”。我不明白为什么在前面的代码行中使用 tag.count 没有生成任何错误时,第 117 行会出现错误?谢谢!

错误消息如下:

AttributeError at /tag/
'Tag' object has no attribute 'count'
Request Method: GET
Request URL:    
http://127.0.0.1:8000/tag/

Django Version: 1.4
Exception Type: AttributeError
Exception Value:    
'Tag' object has no attribute 'count'
Exception Location: /Users/jonathanschen/Python/projects/skeleton/django_bookmarks/django_bookmarks/bookmarks/views.py in tag_cloud_page, line 117
Python Executable:  /usr/bin/python
Python Version: 2.7.1
Python Path:    
['/Users/jonathanschen/Python/projects/skeleton/django_bookmarks',
 '/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg',
 '/Library/Python/2.7/site-packages/distribute-0.6.27-py2.7.egg',
 '/Library/Python/2.7/site-packages/nose-1.1.2-py2.7.egg',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
 '/Library/Python/2.7/site-packages',
 '/Library/Python/2.7/site-packages/setuptools-0.6c11-py2.7.egg-info']
Server time:    Mon, 9 Jul 2012 11:35:33 -0500

它引用的代码是这样的:

def tag_cloud_page(request):
    MAX_WEIGHT = 5
    tags = Tag.objects.order_by('name')
    # Calculate tag min and max counts
    min_count = max_count = tags[0].bookmarks.count()
    for tag in tags:
        tag.count = tag.bookmarks.count()
        if tag.count < min_count:
            min_count = tag.count
        if max_count < tag.count:
            max_count = tag.count
        #calculate count range. Avoid dividing by zero.
        range = float(max_count - min_count)
        if range == 0.0:
            range = 1.0
        # Calculate tag weights.
        for tag in tags:
            tag.weight = int(
                MAX_WEIGHT * (tag.count - min_count) / range #line 117
            )
        variables = RequestContext(request, {
            'tags': tags
        })
        return render_to_response('tag_cloud_page.html', variables)

最佳答案

您使用相同的关键字 tag 迭代 tag 两次。将第二个 for 循环变成如下所示:

for related_tag in tags:

此外,您需要在第二个循环中更改 tag.weight = ...,以便它引用正确的 tagrelated_tag 实例。

关于python - “标签”对象没有属性 'count',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11399549/

相关文章:

python - 将行号传递给嵌入式 Python 解释器

python - apt install virtualenv vs apt install python3-virtualenv

python - Django 绝对导入

python - Django - 将异常传递给调试器

django - 如何在 Django 中的下拉列表中集成多选字段

django - 来自 Django 外键字段的大量查询

python - Kadane 算法中的 global_max 值

python - ndarray 子类的相等性未按预期工作

django - tastypie 发布和完整示例

django - 对带有单下划线的字段名称使用过滤器