Как я могу программно получить max_length поля модели Django?

Существуют выигрыши в производительности, но вот тот, который не был упомянут: миграция строки. С символом Вы резервируете все пространство заранее. Поэтому позвольте нам, говорит, что у Вас есть символ (1000), и Вы храните 10 символов, Вы израсходуете все 1 000 символов пространства. В varchar2 (1000), Вы будете только использовать 10 символов. Проблема возникает при изменении данных. Скажем, Вы обновляете столбец, чтобы теперь содержать 900 символов. Возможно, что пространство для расширения varchar не доступно в текущем блоке. В этом случае механизм DB должен переместить строку в другой блок и сделать указатель в исходном блоке к новой строке в новом блоке. Для чтения этих данных механизм DB должен будет теперь считать 2 блока.
Никто не может двусмысленно сказать, что varchar или символ лучше. Существует пространство для компромисса времени и рассмотрение того, будут ли данные обновлены, особенно если существует хороший шанс, что это вырастет.

62
задан Peter Mortensen 2 December 2009 в 11:10
поделиться

1 ответ

Person._meta.get_field ('name'). Max_length даст вам это значение. Но необходимость использования _meta предполагает, что этого не следует делать при обычном использовании.

Изменить: как заметил Карл, такое наименование вводит в заблуждение, и его использование кажется вполне приемлемым : http://www.b-list.org/weblog/2007/nov/04/working-models/

86
ответ дан 24 November 2019 в 16:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: