Найти - Пользователи
Полная версия: Изменение формата ввода поля timefield
Начало » Django » Изменение формата ввода поля timefield
1
tol_drew
Все привет!

Такая проблема: есть модель
class Event(models.Model):
    match = models.ForeignKey(Match, verbose_name=u'Матч')
    time = models.TimeField(u'Время события')
    type = models.CharField(u'Событие', choices=EVENT_TYPES, max_length=15)
    player = models.ForeignKey(Player, verbose_name=u'Игрок')

необходимо, чтобы при вводе времени в поле time был формат мм:сс, где мм - минуты, а сс - секунды, при текущем положении дел, если ввести, напрмер 32:15, то выскакивает ошибка, т.к. 32 часов не бывает.
Есть еще такой код:
admin.py
@admin.register(Event)
class EventAdmin(admin.ModelAdmin):
    list_display = ['match', 'time', 'type', 'player']

forms.py
from django import forms
class EventAdminForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(EventAdminForm, self).__init__(*args, **kwargs)
        self.fields['time'].widget = forms.TimeInput(format='%M:%S')

но все равно ругается на неверный формат
FishHook
у формы в clean можно тудой два нуля спереди присобачить и будет всё валидироваться
или запилить своё поле для модели
или хранить время в секундах
inoks
TIME_INPUT_FORMATS ?
tol_drew
inoks
TIME_INPUT_FORMATS ?
я не понимаю как этим пользоваться, можно подробнее
inoks
Там же ссылка…
В settings.py пропишите
tol_drew
inoks
Там же ссылка…В settings.py пропишите
добавил в сеттингс
TIME_INPUT_FORMATS = (
        '%H:%M:%S',     
        '%H:%M:%S.%f',  
        '%H:%M',        
        '%M:%S',        
)

но все равно ругается на неверный формат времени
tol_drew
Кто-нибудь helpme!
FishHook
tol_drew
у формы в clean можно тудой два нуля спереди присобачить и будет всё валидироваться
или запилить своё поле для модели
или хранить время в секундах
у формы в clean можно тудой два нуля спереди присобачить и будет всё валидироваться
или запилить своё поле для модели
или хранить время в секундах
inoks
tol_drew
добавил в сеттингс
TIME_INPUT_FORMATS = (
‘%H:%M:%S’,
‘%H:%M:%S.%f’,
‘%H:%M’,
‘%M:%S’,
)

ну вот вы подумайти логически, как при такой записи вам бэкэнд различит что:

11:00

это 11 минут, 00 секунд а не 11 часов 00 минут?

Надо вот так написать:

TIME_INPUT_FORMATS = (
        '%M:%S',
)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB