diff options
Diffstat (limited to 'coip/apps/link/models.py')
-rw-r--r-- | coip/apps/link/models.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/coip/apps/link/models.py b/coip/apps/link/models.py index ada194d..b81215d 100644 --- a/coip/apps/link/models.py +++ b/coip/apps/link/models.py @@ -5,14 +5,27 @@ Created on Aug 4, 2010 ''' from django.db import models from coip.apps.name.models import Name +from django.contrib.contenttypes import generic +from django.contrib.contenttypes.models import ContentType class Link(models.Model): - name = models.ForeignKey(Name,related_name='links') + content_type = models.ForeignKey(ContentType) + object_id = models.PositiveIntegerField() + content_object = generic.GenericForeignKey('content_type', 'object_id') url = models.CharField(max_length=255) tag = models.CharField(max_length=255) text = models.CharField(max_length=255) timecreated = models.DateTimeField(auto_now_add=True) lastupdated = models.DateTimeField(auto_now=True) + class Meta: + unique_together = ('content_type','content_id','url','tag') + def __unicode__(self): - return "%s:%s (%s) on %s" % (self.tag,self.url,self.text,self.name)
\ No newline at end of file + return "%s:%s (%s) on %s" % (self.tag,self.url,self.text,self.name) + + +def add_link(o,url,tag,text): + typ = ContentType.objects.get_for_model(o) + r,cr = Link.objects.get_or_create(object_id=o.id,content_type=typ,url=url,tag=tag) + return r
\ No newline at end of file |