django-rest-framework - 使用 django rest 框架的复合表单

标签 django-rest-framework

------------模型

class Contact(models.Model):
    email = models.EmailField()


class Client(models.Model):
    name = models.CharField(max_length=256)
    contact = models.ForeignKey('Contact')


class Vendor(models.Model):
    name = models.CharField(max_length=256)
    contact = models.ForeignKey('Contact')

------------模型序列化器

class ContactSerializer(serializers.ModelSerializer):
    class Meta:
        model = Contact


class ClientSerializer(serializers.ModelSerializer):
    class Meta:
        model = Client


class VendorSerializer(serializers.ModelSerializer):
    class Meta:
        model = Vendor

“客户表格”应包含以下字段: 客户模型的所有领域 & Contact Model的所有字段

是否可以使用单个“ClientSerializer”?

最佳答案

假设 Client Form 您正在谈论 API 端点的序列化程序(我正确理解您的问题):

由于 ClientVendor 链接到 Contact,您可以将它们添加为子结构。

class ContactSerializer(serializers.ModelSerializer):
    clients = ClientSerializer(many=True)
    vendors = VendorSerializer(many=True)

    class Meta:
        model = Contact

参见 documentation on nested relationships .

关于django-rest-framework - 使用 django rest 框架的复合表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17540830/

相关文章:

python - 检查 Django REST Framework 中相关对象的权限

django - 使用 Django REST Framework 进行身份验证返回 405

python - 尝试检索单个资源时,DRF ViewSet 中不允许使用方法 GET

python - 使用版本控制 : versioned url retrieval 的 DRF 测试 View

python - 如何在 django rest 框架中验证模型?

django - 如何配置 Postgres 与 pytest 一起使用

python - 如何将Django OAuth Toolkit与Python Social Auth结合使用?

python - 应用程序注册表未就绪 : Apps aren't loaded yet

django-rest-framework - 如何在 ViewSet 文档字符串中明确记录可能的 REST 操作?

django - 如果 django rest 中提供了未经授权的凭据,如何发送自定义响应