2016-01-29 19 views
5

Tôi có một vật cố định seed_data.json mà tôi có dữ liệu ban đầu của mình.Django: loaddata để cập nhật dữ liệu

Thỉnh thoảng tôi thêm dữ liệu mới vào các đồ đạc này và tải lại nó, cập nhật dữ liệu của tôi một cách chính xác.

Tuy nhiên, bây giờ tôi muốn xóa một số dữ liệu khỏi nó. Vì vậy, tôi sửa đổi seed_data.json của tôi, ví dụ, tôi đã có một cái gì đó như thế:

{"fields": {"name": "Field 0"},"model": "catalog.product","pk": 1}, 
{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 2}, 
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 3}, 
# ... 

Đó trở thành:

{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 1}, 
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 2}, 
# ... 

Nhưng tôi nhận được:

django.db.utils.IntegrityError: Problem installing fixture .....\seed_data.json

Could not load catalog.Product(pk=2): column name is not unique

Vì vậy, không có vấn đề khi thêm một số dữ liệu, nhưng khi cố gắng loại bỏ một số, có xung đột với các khóa chính.

Làm cách nào để đạt được những gì tôi đang cố gắng làm?

Trả lời

3

Đồ đạc chỉ dành cho dữ liệu ban đầu cho các trường hợp cơ sở dữ liệu hoàn toàn mới, e g khi chạy thử nghiệm. Để sửa đổi di chuyển sử dụng dữ liệu hiện có.

+0

SO, để thực sự thay đổi dữ liệu ban đầu của ứng dụng, tôi cần xóa cơ sở dữ liệu của mình? – Ellone

+0

Có tất nhiên. Đó là lý do tại sao nó được gọi là "ban đầu". –

+0

Vâng, nhưng, đôi khi nếu chúng tôi cập nhật một ứng dụng, có một số thay đổi đối với dữ liệu ban đầu. Và xóa cơ sở dữ liệu cũng sẽ xóa dữ liệu không phải ban đầu. Chắc chắn tôi có thể sử dụng giao diện quản trị, Nhưng tôi muốn giữ sạch khóa chính trên hồ sơ – Ellone

Các vấn đề liên quan