knowledge_serializer.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. ]
  37. class InformationSerializer(serializers.ModelSerializer):
  38. user = serializers.SerializerMethodField()
  39. def get_user(self, obj):
  40. return DeviceUser.objects.get(uid=obj.user).real_name
  41. class Meta:
  42. model = Information
  43. fields = "__all__"