首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django标签模型设计

Django标签模型设计
EN

Stack Overflow用户
提问于 2012-11-10 08:52:29
回答 2查看 18.9K关注 0票数 23

我想知道以下是不是为图像创建标签系统并能够渲染标签云的正确方法:

代码语言:javascript
复制
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个标签。

请给我建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-10 09:14:24

如果您想要做的只是创建一个标记云,那么数据模型就应该足够了。我会做一个修改:

代码语言:javascript
复制
tags = models.ManyToManyField(Tag,related_name='photos')

这将使你的照片视图中的反向查找更容易阅读和记忆。

但是,我会考虑您的标记的其他用例。标签云是你唯一想要使用标签的东西吗?是否存在关系应该包含的元数据?

如果您计划拥有数百万行,那么缓存将与数据模型一样重要。

此外,为了避免重复发明轮子,请查看是否有其他人构建了满足您的目的的库:http://www.djangopackages.com/grids/g/tagging/

票数 28
EN

Stack Overflow用户

发布于 2020-05-20 19:15:43

自己处理标签可能是一项艰巨的工作。你可以很容易地使用django库。使用pip安装它

代码语言:javascript
复制
pip install django-taggit
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13318128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档