Ok, got it thanks. And how would you query the tags then? 
session.query(TagMix) won't work - neither will session.query(User). Is 
there a way of querying all tags, irrespective of what table they are 
'attached' to?

On Wednesday, 2 May 2012 14:18:21 UTC+2, Dave wrote:
>
>
> Nope, just use the one inside the scope, TagMixin.TagClass, like so for 
> your example:
>
> session.add(User.TagClass(tagged=doc1,name='foo'))
>
>
> On May 2, 2012, at 5:07 AM, Ciaran Farrell <[email protected]> 
> wrote:
>
> But how would you actually add a tag? For example, say, using the example 
> you provided below, I had a table called Document, which has is 'taggable'. 
> If I create a Document object (doc1), I can see doc1.tags, which is a list. 
> However, how do I actually _add_ a tag to doc1? I have a TagMixin object 
> available in dir() but no Tag object (which I would have expected) - though 
> a Tag class exists _inside_ the scope of the TagMixin. Do I have to create 
> a Tag object outside the TagMixin class too?
>
> On Thursday, 28 April 2011 00:59:59 UTC+2, Andrey Petrov wrote:
>>
>> Ah I was really close. This worked:
>>
>>
>> class TagMixin(object):
>>     @declared_attr
>>     def tags(cls):
>>         class Tag(BaseModel):
>>             __tablename__ = "tag_%s" % cls.__tablename__
>>
>>             id = Column(types.Integer, primary_key=True)
>>             time_created = Column(types.DateTime, default=datetime.now, 
>> nullable=False)
>>
>>             row_id = Column(types.Integer, ForeignKey(cls.id), 
>> index=True)
>>             name = Column(types.String, nullable=False, index=True)
>>
>>         cls.TagClass = Tag
>>
>>         return orm.relationship(Tag, backref='tagged')
>>
>>
>>
>> class User(BaseModel, TagMixin):
>>     __tablename__ = 'user'
>>
>>     id = Column(types.Integer, primary_key=True)
>>     ...
>>
>>
>>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/sqlalchemy/-/rSjfceG4OQEJ.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sqlalchemy/-/IiBL8Qswp74J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to