gpt4 book ai didi

python - Django loaddata 忽略现有对象

转载 作者:行者123 更新时间:2023-12-04 11:04:11 33 4
gpt4 key购买 nike

我有一个带有条目列表的装置。例如:

[
{
"fields": {
"currency": 1,
"price": "99.99",
"product_variant": 1
},
"model": "products.productprice",
"pk": 1
},
{
"fields": {
"currency": 2,
"price": "139.99",
"product_variant": 1
},
"model": "products.productprice",
"pk": 2
}
]

这只是每个条目的初始数据(价格可能会改变)。我希望能够向该装置添加另一个条目并使用 loaddata 加载它。但不更新数据库中已经存在的条目。

有没有办法做到这一点?类似 --ignorenonexistent但对于现有条目。

最佳答案

如果像这样在 json 中保留 pk,您将始终覆盖 product.productprice 中的前两条记录。
我会使用“pk:null”。
这样,您将始终在每次加载时创建新记录。
所以如果你想创建一个新的价格:

[
{
"fields": {
"currency": 1,
"price": "99.99",
"product_variant": 1
},
"model": "products.productprice",
"pk": 1
},
{
"fields": {
"currency": 2,
"price": "139.99",
"product_variant": 1
},
"model": "products.productprice",
"pk": 2
},
{
"fields": {
"currency": 4,
"price": "9.99",
"product_variant": 1
},
"model": "products.productprice",
"pk": null
}
]
前两个记录总是相同的,但如果您已经在最后一部分中添加了第三个 ( pk:3 ),您将创建一个新的 productprice 和 pk: 4。
顺便说一句:如果您的 货币字段是另一个主键(带自动增量),您也可以在那里放置“null”,将生成一个新的主键。

关于python - Django loaddata 忽略现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53703386/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com