在API请求中处理ManyToOne关系,可以使用外键来表示关联关系。以下是一个使用Django框架的代码示例:
首先,定义两个模型:一个是ManyToOne关系中“多”的一方,另一个是“一”的一方。
# models.py
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
def __str__(self):
return self.title
接下来,创建一个API视图,用于处理API请求。在视图中,可以使用Serializer
来序列化模型数据。
# views.py
from rest_framework import serializers, viewsets
from .models import Author, Book
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = Author
fields = '__all__'
class BookSerializer(serializers.ModelSerializer):
author = AuthorSerializer()
class Meta:
model = Book
fields = '__all__'
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
最后,将API视图注册到URL中,以便可以通过API进行访问。
# urls.py
from django.urls import include, path
from rest_framework import routers
from .views import BookViewSet
router = routers.DefaultRouter()
router.register(r'books', BookViewSet)
urlpatterns = [
path('', include(router.urls)),
]
现在,可以通过以下方式访问API:
GET /books/
GET /books/{id}/
POST /books/
PUT /books/{id}/
DELETE /books/{id}/