Fix unhandled not found exceptions on get starscount on project serializer...

... using annotated stars count value instead of obtaining stars object.
remotes/origin/enhancement/email-actions
Andrey Antukh 2014-05-28 18:29:10 +02:00
parent 4a4fb30779
commit 2333e0e22d
1 changed files with 6 additions and 1 deletions

View File

@ -84,13 +84,18 @@ class ProjectMembershipSerializer(serializers.ModelSerializer):
class ProjectSerializer(serializers.ModelSerializer): class ProjectSerializer(serializers.ModelSerializer):
tags = PickleField(required=False) tags = PickleField(required=False)
stars = serializers.IntegerField(source="stars.count") stars = serializers.SerializerMethodField("get_starts_number")
class Meta: class Meta:
model = models.Project model = models.Project
read_only_fields = ("created_date", "modified_date", "owner") read_only_fields = ("created_date", "modified_date", "owner")
exclude = ("last_us_ref", "last_task_ref", "last_issue_ref") exclude = ("last_us_ref", "last_task_ref", "last_issue_ref")
def get_starts_number(self, obj):
# The "starts_count" attribute is attached by
# starts app service methods
return getattr(obj, "starts_count", 0)
class ProjectDetailSerializer(ProjectSerializer): class ProjectDetailSerializer(ProjectSerializer):
roles = serializers.SerializerMethodField("get_list_of_roles") roles = serializers.SerializerMethodField("get_list_of_roles")