Qub*_*uba 10 python django loaddata django-fixtures
我有一个带有条目列表的装置。例如:
[
{
"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
}
]
Run Code Online (Sandbox Code Playgroud)
这只是每个条目的初始数据(价格可能会改变)。我希望能够向该装置添加另一个条目并加载它,loaddata但不更新数据库中已存在的条目。
有没有办法做到这一点?类似于--ignorenonexistent但对于现有条目。
小智 1
如果像这样将 pk 保留在 json 中,则始终会覆盖 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
}
]
Run Code Online (Sandbox Code Playgroud)
前两条记录始终相同,但如果您已经在最后一部分中添加了第三条记录 ( pk:3 ),您将创建一个带有 pk: 4 的新产品价格。
顺便说一句:如果您的货币字段是其他主键(具有自动增量),您也可以在那里输入“null”,将会生成一个新的主键。