knowledge_serializer.py 1.6 KB

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