我想知道以下是不是为图像创建标签系统并能够渲染标签云的正确方法:
from django.db import models
class Tag(models.Model):
word = models.CharField(max_length=35)
slug = models.CharField(max_length=250)
created_at = models.DateTimeField(auto_now_add=False)
def __unicode__(self):
return self.word
class Photo(models.Model):
slug = models.CharField(max_length=250)
filename = models.CharField(max_length=200)
extension = models.CharField(max_length=4)
size = models.IntegerField()
...
tags = models.ManyToManyField(Tag)
def __unicode__(self):
return self.slug请注意,我的数据库表将包括数百万行,每个图像将有4-8个标签。
请给我建议。
发布于 2012-11-10 09:14:24
如果您想要做的只是创建一个标记云,那么数据模型就应该足够了。我会做一个修改:
tags = models.ManyToManyField(Tag,related_name='photos')这将使你的照片视图中的反向查找更容易阅读和记忆。
但是,我会考虑您的标记的其他用例。标签云是你唯一想要使用标签的东西吗?是否存在关系应该包含的元数据?
如果您计划拥有数百万行,那么缓存将与数据模型一样重要。
此外,为了避免重复发明轮子,请查看是否有其他人构建了满足您的目的的库:http://www.djangopackages.com/grids/g/tagging/
发布于 2020-05-20 19:15:43
自己处理标签可能是一项艰巨的工作。你可以很容易地使用django库。使用pip安装它
pip install django-taggithttps://stackoverflow.com/questions/13318128
复制相似问题