Мне не удалось найти другой пример подстановки строк, как в этом сообщении об ошибке, где %s%s удваивается, как здесь: https://github.com/django/django/blob/387475c5b2f1aa32103dbe21cb281d3b35165a0c/django /contrib/gis/utils/layermapping.py#L260
%s%s и последующие одиночные %s приводят к разным значениям, когда я запускаю код, который вызывает эту ошибку. Ищем объяснение двойного использования.
вот связанный код:
raise LayerMapError(
"Invalid mapping geometry; model has %s%s, "
"layer geometry type is %s."
% (fld_name, "(dim=3)" if coord_dim == 3 else "", ltype)
)
🤔 А знаете ли вы, что...
В Python есть инструменты для тестирования кода, такие как библиотека unittest.
В так называемом «двойнике» %s
нет ничего особенного. У вас просто есть строка с тремя заменами %s
(обратите внимание, что это многострочная строка, хотя это несущественно) и тремя значениями для замены:
fld_name
"(dim=3)" if coord_dim == 3 else ""
ltype
Тот факт, что между первыми двумя %s
нет места (или чего-то еще) этого не меняет.