Изменение поля в форме Django, переопределение ()

У меня не было большого успеха, используя решение @ DrV, хотя, возможно, мой вариант использования уникален. Из-за плотности точек я использую наименьший размер маркера, т. Е. plt.plot(x, y, '.', ms=1, ...), и хочу, чтобы символы легенды были больше.

Я следил за рекомендацией, которую я нашел на форумах matplotlib :

  1. отображает данные (без меток)
  2. предел осей записи (xlimits = plt.xlim())
  3. отображает поддельные данные вдали от реальных данных с помощью
  4. Создать легенду

Вот как это получилось (для это точки на самом деле менее важны, чем линии):

Надеюсь, это поможет кому-то еще.

0
задан Kluckmuck 13 July 2018 в 13:30
поделиться

2 ответа

Вам не нужно ничего делать. Вместо этого вы должны переопределить само поле, предоставив атрибут input_formats :

class BokningForm(forms.ModelForm):
    pumpStart = forms.DateTimeField(input_formats=['%Y-%m-%dT%H:%M:%S'])
    ...

Теперь Django автоматически преобразует значение как часть своего собственного процесса проверки.

Обратите внимание, что если вы используете JSON, вы, вероятно, захотите использовать Django REST Framework и его сериализаторы, а не простые формы Django.

2
ответ дан Daniel Roseman 17 August 2018 в 12:44
поделиться

Чистые данные запускаются до is_valid, потому что clean является одним из многих методов, которые django запускает для проверки вашей формы

, поскольку вы очищаете только одно поле, используйте чистое для этого поля

class BokningForm(ModelForm)
    ...

    def clean_pumpstart(self):
        data = self.cleaned_data['pumpStart']
        data = datetime.strptime(data , "%Y-%m-%d %H:%M")
        return data

в ваших взглядах, может быть, это может тренироваться

if form.is_valid():
    bokning= form.save(commit=False)
    ... # Change your value
    bokning.save()

EDIT: Получил некоторую хорошую информацию в другом посте ... попробуйте использовать чистый метод внутри модели, похоже, что это работает сначала

class Bokning(models.Model):
    def clean(self):
        ...

Источник: Django: метод очистки модели, называемый до очистки формы

0
ответ дан Diego Vinícius 17 August 2018 в 12:44
поделиться
  • 1
    Поле формы будет очищено до вызова метода формы clean_pumpstart, поэтому его слишком поздно изменить. – Alasdair 13 July 2018 в 13:50
  • 2
    его странные ... чистые функции должны быть вызваны перед валидацией, поэтому вы можете настроить свои данные перед тем, как перейти к проверкам молей и вещам вокруг этого – Diego Vinícius 13 July 2018 в 13:56
Другие вопросы по тегам:

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