Объекты базы данных Django используют один и тот же метод save () для создания и изменения объектов.
obj = Product.objects.get(pk=pk)
obj.name = "some_new_value"
obj.save()
Как Django знает UPDATE или INSERT Если атрибут первичного ключа объекта установлен на значение, которое оценивается как True (т. е. значение, отличное от None или пустая строка), Django выполняет UPDATE. Если атрибут первичного ключа объекта не установлен или UPDATE ничего не обновлял, Django выполняет INSERT.
Ref .: https://docs.djangoproject.com /en/1.9/ref/models/instances/
Я бы предположил, что размер карты при инициализации является виновником.
Листовка должна знать размер элемента, в который он встроен при инициализации. Листовка использует эту информацию, чтобы знать, сколько плиток загружается и т. Д. Кроме того, любые программные изменения (или изменения, которые не могут быть легко обнаружены листом) до размера карты, должны сопровождаться ссылкой map.invalidateSize(..)
.
Я подозреваю, что после того, как вы установили размер, Leaflet не смог правильно прочитать новый размер элемента #map. Попытайтесь недействить размер потом или выполните инициализацию асинхронно. Я бы добавил:
setTimeout(function () {
map.invalidateSize();
}, 0);
и проверить, улучшилось ли это.
Я использовал эту команду, чтобы исправить мою проблему с недостающими плитами:
map.getSize();
Похоже, что Leaflet должен заранее знать размер карты элементов, как сказал Михал.