Skip to content
geomin edited this page Nov 18, 2010 · 1 revision

In your application

--- model.py ----

from django.db import models
from tagstar.db.fields import TagsField 

class Human(models.Model):
    name = models.CharField(max_length=32)
    tags = TagsField()
    born_date = models.DateField()

Run ./manage.py

Example:

""" Create an object """

python >>> h = Human.objects.create(name='John', born_date=datetime.datetime(1967,2,5))

""" Add dome tags"""

python >>> h.add_tags('man,tall')

"""Get current tags"""

python >>> h.tags_list

['tall', 'man']

"""Get tags as Tag objects """

python >>> h.get_tags()

[<Tag: tall - 1>, <Tag: man - 1>]

"""Add other tag """

python >>> h.add_tags('brunette') python >>> h.get_tags()

[<Tag: tall - 1>, <Tag: man - 1>, <Tag: brunette - 1>]

python >>> h.tags_list

['tall', 'man', 'brunette']

"""Create second object """

python >>> w = Human.objects.create(name='Mina', born_date=datetime.datetime(1976,11,2)) python >>> w.add_tags('woman,nice') python >>> w.tags_list

['woman', 'nice']

python >>> w.add_tags('brunette') python >>> w.tags_list

[u'woman', u'nice', u'brunette']

python >>> w.get_tags()

[<Tag: woman - 1>, <Tag: nice - 1>, <Tag: brunette - 2>]

"""Get related objects """

python >>> w.get_related()

[<Human: John>]

python >>> c = Human.objects.create(name='Cath', born_date=datetime.datetime(1999,9,5))

"""Get items without tags """

python >>> Human.objects.get_tagless_items()

[<Human: Cath>]

"""Get tags from odel """

python >>> Human.objects.get_tags()

[<Tag: tall - 1>, <Tag: man - 1>, <Tag: woman - 1>, <Tag: nice - 1>, <Tag: brunette - 2>]

python >>> c.add_tags('brunette') python >>>c.get_related()

[<Human: John>, <Human: Mina>]

"""Get related items and custom filter """

python >>> c.get_related().filter(born_date__lt=datetime.datetime(1970,01,01))

[<Human: John>]

python >>> c.add_tags('woman,child') python >>> r = Human.objects.create(name='Randy', born_date=datetime.datetime(2001,9,5)) python >>> r.add_tags('man,child') python >>> r.get_related()

[<Human: John>, <Human: Mina>, <Human: Cath>]

python >>> r.get_related().filter(born_date__gt=datetime.datetime(1999,01,01))

[<Human: Cath>]

python >>> Human.objects.get_related_by_tags('child')

[<Human: Randy>, <Human: Cath>]

python >>> Human.objects.get_related_by_tags('child').filter(born_date__gt=datetime.datetime(2000,01,01))

[<Human: Randy>]

python >>> r.get_related()

[<Human: John>, <Human: Mina>, <Human: Cath>]

"""Use the Q object """

q = Q( born_date__gt=datetime.datetime(2000,01,01) )```

"""Get by tag 'monster' or born_date > 2000-01-01 """

```python >>> Human.objects.get_related_by_tags_q('monster', q)```

[<Human: Randy>]
Clone this wiki locally