DjangoRestFrameworkNotes
title: Django Rest Framework ็ฌ่ฎฐ tags:
Django
Django Rest Framework
categories:
Python
Serializers
RelationShip
# coding: utf-8
# @author bovenson
# @email [email protected]
# @desc Django Rest Framework Serializers
from rest_framework import serializers
from book.models import *
from cloudlibraryserver.settings import IMAGE_SOURCE, IMG_URL
class ScoreSerializer(serializers.ModelSerializer):
"""ไนฆ็ฑ่ฏๅ"""
class Meta:
model = BookScore
fields = '__all__'
class BookAuthorSerializer(serializers.ModelSerializer):
"""ไนฆ็ฑไฝ่
"""
class Meta:
model = BookAuthor
fields = '__all__'
class BookTagSerializer(serializers.ModelSerializer):
"""ไนฆ็ฑๆ ็ญพ"""
class Meta:
model = BookTag
fields = '__all__'
class BookSerializer(serializers.ModelSerializer):
"""ไนฆ็ฑ"""
score = ScoreSerializer(many=False, read_only=True)
author = BookAuthorSerializer(many=True, read_only=True)
tags = BookTagSerializer(many=True, read_only=True)
class Meta:
model = Book
fields = ['name', 'summary', 'pic', 'score', 'author', 'tags']
def to_representation(self, instance):
# ไฟฎๆนๅพ็URL
ret = super().to_representation(instance)
# ไธ็ๅจๅญ
if IMAGE_SOURCE == 'QINIU':
ret['pic'] = IMG_URL + ret['pic'][len('/media'):]
return ret
class BooklistSerializer(serializers.HyperlinkedModelSerializer):
"""ไนฆๅ"""
class Meta:
model = BookList
fields = ['id']Order
่ทๅๅไธช่ฎฐๅฝ
่ฎพ็ฝฎModelViewSetไนๅ๏ผไผ้ป่ฎคๅขๅ view_url/pk/
ไฝฟ็จไธๅSerilizerๅไธๆจกๅ
urls.py
่ฟๅๆ
้ๆฑๆ่ฟฐ
่ฟๅๆฐๆฎๅบ่กจไธญๆ่ฟฐ็ๅ็ฑปๆ
Model
Serializer
ViewSet
้ข่ง
GET /api/article/category/tree/
ๅ้กต
File Tree
่ชๅฎไนๅ้กต็ฑป
pagination.py
settings
ๅฏนไบ่ชๅฎไนaction่ฟ่กๅ้กต
ๅ่
ๆๅๆดๆฐไบ
่ฟๆๅธฎๅฉๅ๏ผ