diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-05-20 18:16:10 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2011-05-20 18:16:10 -0500 |
commit | 6926b23d43323bbc214aa285948ad2850c5ad22e (patch) | |
tree | 060b7265edb940e08f36e22902cd7bafdea04d2e /mediagoblin/db | |
parent | 439e37f73287efbbef8ef60492d7a8c4970a9907 (diff) | |
download | mediagoblin-6926b23d43323bbc214aa285948ad2850c5ad22e.tar.lz mediagoblin-6926b23d43323bbc214aa285948ad2850c5ad22e.tar.xz mediagoblin-6926b23d43323bbc214aa285948ad2850c5ad22e.zip |
Added a url_for_self method for generating mediaentry links
This allows for optionally making the url based off of slugs or ids
Diffstat (limited to 'mediagoblin/db')
-rw-r--r-- | mediagoblin/db/models.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 1bc1da60..8e7889eb 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -117,6 +117,24 @@ class MediaEntry(Document): if duplicate: self['slug'] = "%s-%s" % (self['_id'], self['slug']) + def url_for_self(self, urlgen): + """ + Generate an appropriate url for ourselves + + Use a slug if we have one, else use our '_id'. + """ + if self.get('slug'): + return urlgen( + 'mediagoblin.user_pages.media_home', + user=self['uploader']['username'], + media=self['slug']) + else: + return urlgen( + 'mediagoblin.user_pages.media_home', + user=self['uploader']['username'], + media=unicode(self['_id'])) + + REGISTER_MODELS = [MediaEntry, User] |