I am building an activity model, somewhat similar to this package. It has
an actor, verb and the target.
class Activity(models.Model):
actor_type = models.ForeignKey(ContentType, related_name=
'actor_type_activities')
actor_id = models.PositiveIntegerField()
actor = GenericForeignKey('actor_type', 'actor_id')
verb = models.CharField(max_length=10)
target_type = models.ForeignKey(ContentType, related_name=
'target_type_activities')
target_id = models.PositiveIntegerField()
target = GenericForeignKey('target_type', 'target_id')
pub_date = models.DateTimeField(default=timezone.now)
Now whenever a new object of whichever models (Tender, Job and News) is
created, a new Activity object is created, with the target being the
objects of any of these three models.
eg. user (actor) published (verb) title (target)
class Job(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=150)
qualification = models.CharField(max_length=100)
comments = GenericRelation(Comment)
activity = GenericRelation(Activity)
class News(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=150)
body = models.TextField()
article_image = models.ImageField(upload_to=get_upload_file_name, blank=
True)
tags = models.ManyToManyField(Tag)
comments = GenericRelation(Comment)
activity = GenericRelation(Activity)
class Tender(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=150)
description = models.TextField()
comments = GenericRelation(Comment)
activity = GenericRelation(Activity)
To get this data I am making an API which will get me the required json
data. Now using django-rest-framework
class ActivitySerializer(serializers.RelatedField):
def to_representation(self, value):
if isinstance(value, User):
return 'Bookmark: ' + value.username
elif isinstance(value, News):
return 'Bookmark: ' + value.title
elif isinstance(value, Job):
return 'Note: ' + value.title
elif isinstance(value, Tender):
return 'Bookmark: ' + value.title
raise Exception('Unexpected type of tagged object')
But now I am getting this error:
*TypeError at /postactivities/*
> init() takes exactly 1 argument (3 given)
>
How can I solve this problem? Your help and guidance is very much
appreciated.
Thank you.
--
You received this message because you are subscribed to the Google Groups
"Django REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.