在Django rest框架中,通过使用外键关系,可以轻松获得具有父模型外键的子模型。以下是一些步骤和代码示例:
from django.db import models
class ParentModel(models.Model):
name = models.CharField(max_length=100)
class ChildModel(models.Model):
parent = models.ForeignKey(ParentModel, on_delete=models.CASCADE)
child_name = models.CharField(max_length=100)
from rest_framework import serializers
class ChildSerializer(serializers.ModelSerializer):
class Meta:
model = ChildModel
fields = ('id', 'child_name')
class ParentSerializer(serializers.ModelSerializer):
children = ChildSerializer(many=True, read_only=True)
class Meta:
model = ParentModel
fields = ('id', 'name', 'children')
from rest_framework import viewsets
class ParentViewSet(viewsets.ModelViewSet):
queryset = ParentModel.objects.all()
serializer_class = ParentSerializer
from django.urls import path, include
from rest_framework import routers
router = routers.DefaultRouter()
router.register('parents', ParentViewSet)
urlpatterns = [
path('', include(router.urls)),
]
现在,当你访问/parents/
,你将获得所有父模型的列表,并且每个父模型对象都包含一个children
字段,其中包含与该父模型相关联的所有子模型对象。
对于具有父模型外键的子模型的获取,这就是在Django rest框架中的常规做法。该方法允许你轻松地检索和序列化父模型及其关联的子模型。
更多关于Django rest框架的详细信息和示例,你可以访问腾讯云的Django REST Framework产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云