knowledge_serializer.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from smartfarming.models.agriculture import KnowledgeCategory, KnowledgeManage, Information
  2. from rest_framework import serializers
  3. from smartfarming.models.user import DeviceUser
  4. class KnowledgeCategorySerializer(serializers.ModelSerializer):
  5. class Meta:
  6. model = KnowledgeCategory
  7. fields = "__all__"
  8. class KnowledgeManageSerializer(serializers.ModelSerializer):
  9. category = serializers.SerializerMethodField()
  10. category_id = serializers.SerializerMethodField()
  11. is_top = serializers.SerializerMethodField()
  12. def get_is_top(self, obj):
  13. return True if obj.is_top else False
  14. def get_category(self, obj):
  15. try:
  16. category = KnowledgeCategory.objects.get(id=obj.category)
  17. return category.title
  18. except:
  19. return ""
  20. def get_category_id(self, obj):
  21. return obj.category
  22. class Meta:
  23. model = KnowledgeManage
  24. fields = [
  25. "id",
  26. "category",
  27. "title",
  28. "is_top",
  29. "related_plan",
  30. "addtime",
  31. "img",
  32. "origin",
  33. "content",
  34. "is_delete",
  35. "category_id",
  36. "count"
  37. ]
  38. class InformationSerializer(serializers.ModelSerializer):
  39. user = serializers.SerializerMethodField()
  40. def get_user(self, obj):
  41. return DeviceUser.objects.get(uid=obj.user).real_name
  42. class Meta:
  43. model = Information
  44. fields = "__all__"