Commit 0417f141 by Florian Apolloner

Merge pull request #115 from zlorf/related_attr

Add related attribute to TaggableManager (close #114).
parents 826850c5 025a573e
...@@ -83,6 +83,7 @@ class TaggableManager(RelatedField): ...@@ -83,6 +83,7 @@ class TaggableManager(RelatedField):
self.through is None or issubclass(self.through, GenericTaggedItemBase) self.through is None or issubclass(self.through, GenericTaggedItemBase)
) )
self.rel.to = self.through._meta.get_field("tag").rel.to self.rel.to = self.through._meta.get_field("tag").rel.to
self.related = RelatedObject(self.through, cls, self)
if self.use_gfk: if self.use_gfk:
tagged_items = GenericRelation(self.through) tagged_items = GenericRelation(self.through)
tagged_items.contribute_to_class(cls, "tagged_items") tagged_items.contribute_to_class(cls, "tagged_items")
......
...@@ -287,6 +287,13 @@ class TaggableManagerTestCase(BaseTaggingTestCase): ...@@ -287,6 +287,13 @@ class TaggableManagerTestCase(BaseTaggingTestCase):
["hd"], ["hd"],
) )
def test_field_api(self):
# Check if tag field, which simulates m2m, has django-like api.
field = self.food_model._meta.get_field('tags')
self.assertTrue(hasattr(field, 'rel'))
self.assertTrue(hasattr(field, 'related'))
self.assertEqual(self.food_model, field.related.model)
class TaggableManagerDirectTestCase(TaggableManagerTestCase): class TaggableManagerDirectTestCase(TaggableManagerTestCase):
food_model = DirectFood food_model = DirectFood
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment