模型欄位與序列化正反向查詢

God_Hearing發表於2020-10-12

普通欄位

Course_name = models.CharField(max_length=24)

一對多欄位,ForeignKey,第一個引數為,對應的model模型,on_delete代表對應關係刪除時,是否刪除資料

course_type = models.ForeignKey(CourseType,verbose_name='課程型別',on_delete=models.SET_NULL,default=None,null=True)

多對多欄位,第一個引數為多對多對應的model模型

course_tag = models.ManyToManyField(CourseTag,verbose_name='課程標籤')

正向查詢,在serializers.ChariField欄位中,新增source引數,格式為:source='外來鍵.某欄位'

Course_name = serializers.CharField(source='course.title',required=False)

反向查詢:在序列化器中,新增該類的序列化器,例如:

class ChaptersSerializer(serializers.ModelSerializer):
    # 正向查詢,找到課程表
    # Course_name = serializers.CharField(source='course.title',required=False)
    
    # 反向查詢,找到節表對應的資訊
    sections = SectionsSerializer(many=True)
    class Meta:
        fields = '__all__'
        model = models.Chapters
        
        
class SectionsSerializer(serializers.ModelSerializer):
    class Meta:
        fields = '__all__'
        model = models.Sections

相關文章