Django Balise de modèle de conception
Je me demandais si la suivante est la bonne manière de créer le système d'étiquetage pour les images et d'être en mesure de rendre un nuage de tags:
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
Remarque que ma table de base de données comprendra des millions de lignes et chaque image aura 4-8 balises.
Veuillez en informer.
Je sais que c'est tout à fait il ya un moment, mais pourriez-vous nous expliquer pourquoi vous mettez une balle de terrain dans la Balise? Je veux dire, quel est le but. Sincèrement curieux.
La façon dont je le fais pour gagner de la place sur la base de données est d'utiliser des valeurs séparées par une virgule exemple mac,windows,linux, depuis que la photo aura lui-même les balises et l'habitude de les utiliser pour de plus amples purpouses.
La façon dont je le fais pour gagner de la place sur la base de données est d'utiliser des valeurs séparées par une virgule exemple mac,windows,linux, depuis que la photo aura lui-même les balises et l'habitude de les utiliser pour de plus amples purpouses.
OriginalL'auteur azio | 2012-11-10
Vous devez vous connecter pour publier un commentaire.
Si tout ce que vous voulez faire est de créer un nuage de tags, que le modèle de données doit être suffisante. Je voudrais faire un modification:
Qui permettra de faire des recherches inversées dans vous photo vues nettoyeur à lire et facile à retenir.
Cependant, je suis d'envisager d'autres cas d'utilisation pour vos tags. Est un tag cloud la seule chose que vous souhaitez utiliser le balisage? Est-il un méta-données qui est la relation qui devrait contenir?
Si vous avez l'intention d'avoir des millions de lignes, puis la mise en cache va être aussi important que le modèle de données.
Aussi, pour éviter de réinventer la roue, voir si quelqu'un d'autre a construit une bibliothèque qui répond à vos fins: http://www.djangopackages.com/grids/g/tagging/
Modifier: Orthographe
oui j'aime celui-ci: django-taggit.readthedocs.io/en/stable/getting_started.html
OriginalL'auteur Arion
J'ai essayé de plusieurs façons, et je l'ai trouvé le moins de mal et le plus facile à faire est d'utiliser ce package appelé
django-taggit
Lire La Django-taggit docs
OriginalL'auteur Ahmed Wagdi