thread.py 919 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. from django.core.urlresolvers import reverse
  2. from rest_framework import serializers
  3. from misago.categories.serializers import BasicCategorySerializer
  4. from misago.threads.models import Thread
  5. __all__ = ['ThreadSerializer']
  6. class ThreadSerializer(serializers.ModelSerializer):
  7. category = BasicCategorySerializer()
  8. is_read = serializers.SerializerMethodField()
  9. top_category = BasicCategorySerializer()
  10. acl = serializers.SerializerMethodField()
  11. class Meta:
  12. model = Thread
  13. fields = (
  14. 'id',
  15. 'title',
  16. 'category',
  17. 'top_category',
  18. 'is_read',
  19. 'acl',
  20. )
  21. def get_is_read(self, obj):
  22. try:
  23. return obj.is_read
  24. except AttributeError:
  25. return None
  26. def get_acl(self, obj):
  27. try:
  28. return obj.acl
  29. except AttributeError:
  30. return {}