[英]Django Tag model design
我想知道以下是否是為圖像創建標記系統並能夠呈現標記雲的正確方法:
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 個標簽。
請指教。
如果您只想創建一個標簽雲,那么該數據模型就足夠了。 我會做一個修改:
tags = models.ManyToManyField(Tag,related_name='photos')
這將使您的照片視圖中的反向查找更易於閱讀和記憶。
但是,我會考慮您的標簽的其他用例。 標簽雲是您唯一想要使用標簽的嗎? 是否有關系應該包含的元數據?
如果您計划擁有數百萬行,那么緩存將與數據模型一樣重要。
另外,為了避免重新發明輪子,看看是否有其他人已經構建了一個滿足您目的的庫: http : //www.djangopackages.com/grids/g/tagging/
自己處理標簽可能是一項艱巨的工作。 您可以輕松使用 django 庫。 用pip安裝
pip install django-taggit
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.