Я пытаюсь импортировать json в мое веб-приложение django, и оно почти нормально работает, за исключением одной проблемы.Когда я удаляю объекты на 1-2 строки перед вызовом deserialized_object.save (), он работает нормально, но если я последовательно вызываю delete (), а затем последовательно сохраняю (), он не работает должным образом.
ЭТО РАБОТАЕТ КАЧЕСТВЕННО
def builder_import(request, pk):
if request.method == 'POST':
file = request.FILES['myfile']
data = file.read()
ModelOne.objects.filter(linked__name__pk=pk).delete()
for deserialized_object in serializers.deserialize("json", data):
if object_should_be_saved(deserialized_object):
deserialized_object.save()
ЭТО НЕ РАБОТАЕТ
def builder_import(request, pk):
if request.method == 'POST':
file = request.FILES['myfile']
data = file.read()
for deserialized_object in serializers.deserialize("json", data):
if object_should_be_saved(deserialized_object):
ModelOne.objects.filter(linked__name__pk=pk).delete()
deserialized_object.save()
Первый фрагмент работает нормально, а второй - нет.В первом случае он удаляет все записи, а затем загружает все правильно в БД.Но во втором случае он удаляет, а затем загружает только одну запись по какой-то странной причине.
Может быть, это какая-то проблема с синхронизацией, но я думал, что операции с базой данных django хорошо синхронизированы.
Что может быть не так?(Я следовал следующему руководству по сериализации https://docs.djangoproject.com/en/1.11/topics/serialization) (отредактировано)