django - Django 使用表单集休息
问题描述
现在我有一个工作表单集页面,使用外键在 ModelA 中创建一条记录,为 ModelB 创建 3 条记录。现在我想为此创建restApi,现在我已经将一个模型链接到另一个模型,但我的问题是如何让ModelB为这个模型添加几次。
序列化程序.py
class DailyMontageCreateSerializer(serializers.ModelSerializer):
class MonterDailyTempSerializer(serializers.ModelSerializer):
class Meta:
model = models.MonterDaily
exclude = ['daily_montage', 'created', 'updated']
validators = [
UniqueTogetherValidator(
queryset=models.MonterDaily.objects.all(),
fields=['name', 'date']
)
]
daily_montage = MonterDailyTempSerializer()
class Meta:
model = models.DailyMontage
exclude = ['created', 'updated']
validators = [
UniqueTogetherValidator(
queryset=models.DailyMontage.objects.all(),
fields=['team', 'date']
)
]
def create(self, validated_data):
model_b_data = validated_data.pop('daily_montage')
model_a_instance = models.DailyMontage.objects.create(**validated_data)
models.MonterDaily.objects.create(daily_montage=model_a_instance,
**model_b_data)
return model_a_instance
视图.py
class DailyMontageCreateAPIView(generics.CreateAPIView):
queryset = models.MonterDaily.objects.all()
serializer_class = serializers.DailyMontageCreateSerializer
现在,如果我要这样添加就好了
{
"daily_montage": {
"status": null,
"name": 1
},
"type": null,
"date": null,
"user": 1,
}
但我想成为那样
{
"daily_montage": {
"status": null,
"name": 1
},
"daily_montage": {
"status": null,
"name": 2
},
"daily_montage": {
"status": null,
"name": 3
},
"type": null,
"date": null,
"user": 1,
}
编辑//
我在 serializers.py 中解决了我的问题
daily_montage = MonterDailyTempSerializer(many=true)
下一行是编辑:
def create(self, validated_data):
model_b_data = validated_data.pop('daily_montage')
model_a_instance = models.DailyMontage.objects.create(**validated_data)
for model_b in model_b_data:
models.MonterDaily.objects.create(daily_montage=model_a_instance,
**model_b)
return model_a_instance
现在 json 应该看起来像这样发布:
"daily_montage": [
{
Model_B
},
{
Model_B
},
{
Model_B
}
],
"type": "",
"day_montage": "",
"date": "",
"user": null,
}
解决方案
推荐阅读
- ibm-watson - 使用的 Watson 辅助算法
- opencl - 仅对 OpenCL 内核中的缓冲区子集进行操作
- java - for 循环中的 JSONArray.add(JSONObject) 正在替换 for 循环中的旧值,并且 Array 包含循环中的最后一个值
- node.js - 无法在 Windows 上使用电子 4.0.6 加载一些本机节点 js 模块
- c - 静态库中函数调用中的多个符号
- rx-java - 使用 RxJava 时如何在 couchbase 中找到不可用的实体?
- javascript - java脚本中的“作用域链”是指针吗?
- mysql - SQL:计算一个类别中不同项目的总数
- api - 使用 Tibco BW Vers6 调用外部 API
- amazon-cognito - 用户的会话无效,会话已过期