2017-07-11 3 views
1

Voici un modèle avec plusieurs balises dedans. Comment puis-je récupérer des données à partir de tags_en? tags.names() fonctionne bien, mais pas tags_en.names() ni tags_en.all()Django-taggit. Multi-tags dans un modèle. Récupérer des données

from taggit.models import GenericUUIDTaggedItemBase, TaggedItemBase, TagBase 
from taggit_selectize.managers import TaggableManager 

class UUIDTaggedItem(GenericUUIDTaggedItemBase, TaggedItemBase): 
    class Meta: 
     verbose_name = _("Tag") 
     verbose_name_plural = _("Tags") 


class BaseTag (TagBase): 
    pass 


class UUIDTaggedItemEn (GenericUUIDTaggedItemBase, TaggableManager): 
    tag = models.ForeignKey(BaseTag) 


class Item(models.Model): 
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 
    tags = TaggableManager(blank=True, through=UUIDTaggedItem) 
    tags_en = TaggableManager(blank=True, through=UUIDTaggedItemEn) 

message d'erreur:

ChampErreur à/admin/item/item/

Impossible de résoudre le mot clé 'Aucun' en champ. Les choix sont: catégorie, id, point, nom, limace, taggroup, uuidtaggeditemen

Répondre

1

d'abord, vous devez ajouter un attribut Manager à l'autre classe comme

class UUIDTaggedItemEn (GenericUUIDTaggedItemBase, TaggableManager): 
    tag = models.ForeignKey(BaseTag) 
    objects = = models.Manager() 

vous pouvez appeler le filtre d'utilisation comme

tags_en.objects.filter(id=...) 
tags_en.objects.all() 

le problème est avec plusieurs taggablemanagers vous les appelez bien d'autres classes et quand est allé recevoir ous les objets dont vous avez besoin d'appeler ces classes. J'espère que cela a aidé sinon laisser un commentaire

+0

Maintenant il est: '_TaggableManager' objet n'a aucun attribut 'objets' –

+0

lorsque vous avez ajouté les objets à l'autre classe avez-vous ./manage.py makemigration, puis ./manage.py émigrer? – hansTheFranz

+0

J'ai recréé des tables à partir de zéro. Aucun problème lors de makemigrations/migrate. –