2010-09-22 7 views
2

Je suis un peu nouveau dans django et j'essaie de trouver les meilleures façons de faire les choses au lieu d'écrire tout moi-même. Je travaille sur un modèle où j'ai besoin de plusieurs types de tags à associer à un modèle, puis je souhaite récupérer les objets en utilisant plusieurs critères de filtrage. Je vois que dans les tags django-tagging sont stockés par modèle donc je pense qu'il n'est pas possible d'avoir plusieurs tags par modèle. Ex:Comment associer plusieurs types de tags par modèle dans django

class Place(model): 
    category = TagField() # fun, play, learn, relax 
    sport = TagField() # boating, hunting, fishing 

Est-il possible de faire cela en utilisant django-tagging? Ai-je manqué quelque chose puisque cela me semble assez courant.

Répondre

1

On dirait que vous parlez soi-disant balises machine. Ce sont des balises avec des espaces de noms et/ou des valeurs. (Flickr utilise cette approche: elle nous permet d'étiqueter une photo avec, disons upcoming:event=81334, et affiche cette étiquette comme un lien vers un événement à venir.)

Il y a un problème pour django-tagging, archivé en 2007: voir code.google.com/p/django-tagging/issues/detail?id=14.

Pas de commentaires par les mainteneurs de base, malheureusement. Cependant, il y a une branche 'machinetags' maintenue par Gregor Müllegger ici: https://code.launchpad.net/~gregor-muellegger/django-tagging/machinetags/.

Il est la plupart du temps en phase avec le tronc django-marquage ( la dernière commettras un certain nombre de commits manque cependant). Je me souviens avoir travaillé sur un projet utilisant cette branche il y a environ un an; ça a bien fonctionné. Lisez la documentation sur la branche et les commentaires sur le problème pour plus de détails.

+0

Trouvé un certain nombre de questions connexes (la plupart du temps sans réponse): http://stackoverflow.com/questions/3251737/categories-of-tags/, http://stackoverflow.com/questions/4477423/machine-tags-referencing-model -instances-in-django, http://stackoverflow.com/questions/3542388/how-make-tags-with-properties-in-django, http://stackoverflow.com/questions/3077502/organizing-django-tagging -tags-or-assignment-properties-to-tags – Tony

+0

Merci Anton! semble prometteur, y jeter un coup d'oeil – harry

1

Je ne suis pas connu dans django-marquage, mais en regardant ses modèles:

http://code.google.com/p/django-tagging/source/browse/trunk/tagging/models.py#456

il est évident que vous ne pouvez attacher des balises à des modèles, mais il n'y a pas de groupes d'étiquettes multiples par modèle. La rédaction de ce , vous pourriez être dans les balises de marquage Successfull eux-mêmes, bien que ce n'est pas la meilleure conception on pourrait imaginer :)

+0

Merci Tomasz! Je pense à écrire mes propres classes/modèles de marquage. Cela aurait été génial d'utiliser le tagging existant dans django. – harry

+0

Vous pouvez essayer de modifier Django-tagging de cette façon. –

+1

Ouais de cette façon, je serai en mesure de réutiliser le code existant. Je m'attendais à ce que django-tagging ait cette fonctionnalité. – harry

Questions connexes