django - 将两个模型混合到 DRF 中的同一端点

标签 django django-rest-framework

我现在正在学习 DRF,我想知道是否可以混合通过外键链接到一个特定端点的两个模型。

例如,假设我有两个模型:

Model1:
class Car(models.Model):
    Name = models.CharField(max_length=500, null=True, blank=True)
    Year = models.CharField(max_length=500, null=True, blank=True)

Model2:
Class Revision(models.Model):
    revision1 = models.CharField(max_length=500, null=True, blank=True)
    revision2 = models.CharField(max_length=500, null=True, blank=True)
    car_is = models.ForeignKey(
    Car, on_delete=models.CASCADE, null=True, blank=True)

我想要实现的是获取 url: "/car/1"(car datails) 具有修订版本的特定汽车的数据。

我正在使用基于类的 View 和 DRF

最佳答案

您可以通过revision_set属性访问汽车的版本。因此,您需要将 revision_set 字段添加到汽车序列化器中:

class CarSerializer(serializers.ModelSerializer):
    class Meta:
        model = Car
        fields = ('Name', 'Year', 'revision_set')
        depth = 1

请注意,要获取修订详细信息而不是简单的 ID 列表,您可以使用 depth元选项。

关于django - 将两个模型混合到 DRF 中的同一端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50775364/

相关文章:

Python 结构错误

django - DRF多对一反向查询

python - 如何使用 Django REST Framework 返回生成的文件下载?

python - 如何更新需求?

django - 编辑 Django 表单中的现有条目

python - Django Forms - 多对多关系

django - 内部和外部 API 的单独文档 (drf_yasg)

python - DRF - 将深度=1 添加到模型序列化器不再允许我发布

python - 如何全局禁用 Django Rest Framework 上的 OPTIONS 方法?

python - 在 Django Rest Framework (2.3.5) 中序列化 ManyToMany 抛出 ValueError