Найти - Пользователи
Полная версия: формат models.DateField
Начало » Django » формат models.DateField
1 2
OZION
все в своей кривости разобрался forms.DateField('%m/%d/%Y') вот так делать нельзя =)
надо вот так: forms.DateField(input_formats=('%d-%m-%Y',)

очень понравилось данное решение http://djangonaut.blogspot.com/2008/05/django_08.html
изменил код виджета в файле Python25\Lib\site-packages\django\forms\extras\widgets.py на код из статьи
далее по примеру автора статьи модифицировал свой:
 passport_when_delivery = forms.DateField(label='Дата выдачи', initial=datetime.date.today,
input_formats=('%d-%m-%Y',),
widget=SelectDateWidget(input_format='%d-%B-%Y', years=range(year, year-101, -1)))
но система не нашла виджет и выдала ошибку name ‘SelectDateWidget’ is not defined
Vermus
OZION
все в своей кривости разобрался forms.DateField('%m/%d/%Y') вот так делать нельзя =)
надо вот так: forms.DateField(input_formats=('%d-%m-%Y',)
Ну да, выше я приводил рабочий пример, это input_formats должен быть списком.

OZION
очень понравилось данное решение http://djangonaut.blogspot.com/2008/05/django_08.html
изменил код виджета в файле Python25\Lib\site-packages\django\forms\extras\widgets.py на код из статьи
далее по примеру автора статьи модифицировал свой:
 passport_when_delivery = forms.DateField(label='Дата выдачи', initial=datetime.date.today,
input_formats=('%d-%m-%Y',),
widget=SelectDateWidget(input_format='%d-%B-%Y', years=range(year, year-101, -1)))
но система не нашла виджет и выдала ошибку name ‘SelectDateWidget’ is not defined
Зря модифицируешь исходники, лучше создай свой фал widgets.py и подключай свои виджеты через него.
Не нашла - значит подключен неправильно. в вашем случае должно быть forms.SelectDateWidget, если вы объявили:
from django import forms
OZION
лучше создай свой фал widgets.py и подключай свои виджеты через него
Сделал так, все заработало(почти все)

так все работает
	passport_when_delivery = forms.DateField(label='Дата выдачи', initial=datetime.date.today,
input_formats=('%d-%m-%Y',),
widget=SelectDateWidget(input_format='%d-%B-%Y')
при этом years по умолчанию и согласно виджету
        years            - list/tuple of years to use in the "year" select 
box. By default: this year and next 9 printed.
формирует года от текущего до следующих 9ти.

поскольку данное решение не подходит согласно примеру автора виджета добавил параметр years
	
from django import forms
import datetime
from prokat.widgets import SelectDateWidget
class Form_Order(forms.Form):
passport_when_delivery = forms.DateField(label='Дата выдачи', initial=datetime.date.today,
input_formats=('%d-%m-%Y',),
widget=SelectDateWidget(input_format='%d-%B-%Y', years=range(year, year-101, -1)))
при таком раскладе система не находит year в range “Exception Value: name ‘year’ is not defined”
В чем может быть дело?

П.С код моего виджета абсолютно идентичен коду автора виджета http://djangonaut.blogspot.com/2008/05/django_08.html
Разве что заменил
from django.newforms.widgets import Widget, Select
на
from django.forms.widgets import Widget, Select
версия джанго VERSION = (1, 0, ‘final’)
Vermus
Ну так все по-русски написано Exception Value: name ‘year’ is not defined"
Определи год как-нибудь (в примере это текущий год - то есть задаем диапазон в зависимости от текущего года), например,
now = datetime.datetime.now()
year=now.year
gfw
Vermus
class MyModelAdmin(admin.ModelAdmin):
def formfield_for_dbfield(self, db_field, **kwargs):
field = super(MyModelAdmin,self).formfield_for_dbfield(db_field,**kwargs)

if isinstance(db_field, models.DateField)
return forms.DateField(input_formats=('%d-%m',), widget=SelectDateWidget(input_format='%d-%B', null=True))
return field
или
Сделал все точно как в этом примере. Вид поля в админке изменился, но при нажатии кнопки “сохранить” теперь непрерывно вылазит ошибка “Укажите дату правильно”. Второй день никак не могу понять, что и как исправить. Помогите!!!!
qman
Всем привет,
подскажите как определить формат даты не в админке а в форме ? У меня код
class BookForm(ModelForm):    
publication_date = forms.DateField(input_formats=('%d-%m-%Y',), \
widget=SelectDateWidget(input_format='%d-%B-%Y',\
years=range(year, year-101, -1)))
class Meta:
model = Book
Получаю
__init__() got an unexpected keyword argument 'input_format'
виджет SelectDateWidget() не желает работать с input_format (также пробовал input_formats)!!! Или я что то делаю не правильно?
Александр Кошелев
qman
виджет SelectDateWidget() не желает работать с input_format!!!
Да. Не надо ему его скармливать.
qman
Daevaorn
Да. Не надо ему его скармливать.
извините за тупость при таком коде
class BookForm(ModelForm):    
publication_date = forms.DateField(input_formats=('%d-%B-%Y',), )
class Meta:
model = Book
имею формат даты:
год-месяц-день
а нужно
день-месяц-год.
Где туплю?
qman
оказалось, что форма ввода новых объектов воспринимает формат как задано в input_formats! а при редактировании уже введенных записей input_formats игнорируется.
class BookForm(ModelForm):    
publication_date = forms.DateField(input_formats=('%d/%m/%Y',),)

class Meta:
model = Book
Я один с такой проблемой?
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