django - 子对象的外键分配
问题描述
我有一个非常简单的问题,我无法理解。我有以下型号
class Parent(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=64)
class Child(models.Model):
boardid = models.ForeignKey(Parent,on_delete=models.CASCADE,related_name="child")
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=128)
序列化器
class ParentSerializer (serializers.ModelSerializer):
class Meta:
model = Parent
fields = ('__all__')
class ChildSerializer (serializers.ModelSerializer):
class Meta:
model = Child
fields = ('id','title')
和简单的 createAPIview 为孩子们
class ChildCreateView(CreateAPIView):
queryset= Child.objects.all()
serializer_class = ChildSerializer
当我调用这个 url /api/parent/1/child/create 时,我想用 id 1 预先填充外键板 id 并使用我将在 body 中提供的其余信息创建子对象。这怎么可能实现
解决方案
最初,将boardid
字段添加到ChildSerializer
,
class ParentSerializer(serializers.ModelSerializer):
class Meta:
model = Parent
fields = '__all__' # no need of "()"
class ChildSerializer(serializers.ModelSerializer):
class Meta:
model = Child
fields = ('id', 'title', 'boardid')
然后,使用下面的 json 有效负载来创建实例。
{
"title":"child title",
"boardid":123,
... other data
}
推荐阅读
- angular - Kubernetes 可以看到我的 Angular 控制台日志吗?
- c++ - C++实现循环宏的方法
- wso2 - 如何自定义 wso2 api manager 错误格式?
- java - 可以使用从远程主机连接的 java 代理来传递数据吗?
- amazon-web-services - 在 AWS Elastic Beanstalk 中部署烧瓶应用程序时出现 require.txt 的问题
- sql - SQLite:按 NULL 值的数量排序
- android - 使用工具栏中的按钮在片段之间导航
- html - 是什么让两个具有相同 CSS 属性的元素看起来不同?
- sql - SQL Server:合并迭代
- sql - 在 Athena 或 Quicksight 上滚动计数