Обязательное поле Django в образцовой форме

Просто маленькое скручивание, если Вы не используете инструменты и хотите к методам времени с низким временем выполнения: выполняйте его много раз, каждый раз удваивая количество раз, это выполняется, пока Вы не достигаете секунды, или около этого. Таким образом время Вызова к System.nanoTime и т.д, ни точность System.nanoTime действительно влияют на результат очень.

    int runs = 0, runsPerRound = 10;
    long begin = System.nanoTime(), end;
    do {
        for (int i=0; i<runsPerRound; ++i) timedMethod();
        end = System.nanoTime();
        runs += runsPerRound;
        runsPerRound *= 2;
    } while (runs < Integer.MAX_VALUE / 2 && 1000000000L > end - begin);
    System.out.println("Time for timedMethod() is " + 
        0.000000001 * (end-begin) / runs + " seconds");

, Конечно, протесты об использовании настенных часов применяются: влияния JIT-компиляции, несколько потоков / обрабатывают и т.д. Таким образом, необходимо сначала выполнить метод много из времен сначала, такой, что JIT-компилятор делает свою работу, и затем повторяет этот тест многократно и занимает самое низкое время выполнения.

71
задан Serjik 19 December 2015 в 09:42
поделиться

4 ответа

Если вы не хотите изменять пустые настройки для ваших полей внутри моделей (это нарушит нормальную проверку на сайте администратора), вы можете сделать следующее в своем классе формы:

def __init__(self, *args, **kwargs):
    super(CircuitForm, self).__init__(*args, **kwargs)

    for key in self.fields:
        self.fields[key].required = False 

Переопределенный конструктор не повредит никакой функциональности.

111
ответ дан 24 November 2019 в 13:01
поделиться

Если в поле модели пусто = Истина, то в поле формы обязательно устанавливается значение Ложь. В противном случае required = True

Здесь сказано: http://docs.djangoproject.com/en/dev/topics/forms/modelforms/

Похоже, вы все делаете правильно. Вы можете проверить значение self.fields ['end']. Required .

17
ответ дан 24 November 2019 в 13:01
поделиться

Это не ответ, но для всех, кто найдет это через Google, еще один бит данных: это происходит со мной в модельной форме с DateField. Требуется установить значение False, модель имеет "null = True, blank = True", а поле в форме показывает required = False, если я смотрю на него во время метода clean (), но он по-прежнему говорит, что мне нужна действительная дата формат. Я не использую никаких специальных виджетов и получаю сообщение «Введите действительную дату», даже если я явно установил input_formats = ['% Y-% m-% d', '% m /% d /% Y', ' % m /% d /% y ',' '] в поле формы.

РЕДАКТИРОВАТЬ: Не знаю, поможет ли это кому-то еще, но я решил проблему, с которой столкнулся. В нашей форме есть текст по умолчанию в поле (в данном случае слово «до» означает, что поле является датой окончания; поле называется end_time). Я специально искал слово «to» в методе формы clean () (я также пробовал метод clean_end_time (), но он так и не был вызван) и установил для переменной clean_data значение None, как предложено в этот билет Django . Однако все это не имело значения, поскольку (я полагаю) проверка модели уже вызвала недействительный формат даты «до», не дав мне возможности его перехватить.

проверка уже вызвала недействительный формат даты «до», не дав мне возможности перехватить его.

проверка уже вызвала недействительный формат даты «до», не дав мне возможности перехватить его.

3
ответ дан 24 November 2019 в 13:01
поделиться

Это ошибка при использовании виджетов:

обходной путь: Использование виджетов времени / даты Django в настраиваемой форме

или тикете 12303

0
ответ дан 24 November 2019 в 13:01
поделиться
Другие вопросы по тегам:

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