| | 2039 | ## Generic DateField ########################################################## |
|---|
| | 2040 | |
|---|
| | 2041 | >>> from django.contrib.localflavor.generic.forms import * |
|---|
| | 2042 | |
|---|
| | 2043 | A DateField that uses generic dd/mm/yy dates instead of mm/dd/yy where |
|---|
| | 2044 | appropriate. |
|---|
| | 2045 | |
|---|
| | 2046 | >>> import datetime |
|---|
| | 2047 | >>> f = DateField() |
|---|
| | 2048 | >>> f.clean(datetime.date(2006, 10, 25)) |
|---|
| | 2049 | datetime.date(2006, 10, 25) |
|---|
| | 2050 | >>> f.clean(datetime.datetime(2006, 10, 25, 14, 30)) |
|---|
| | 2051 | datetime.date(2006, 10, 25) |
|---|
| | 2052 | >>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59)) |
|---|
| | 2053 | datetime.date(2006, 10, 25) |
|---|
| | 2054 | >>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59, 200)) |
|---|
| | 2055 | datetime.date(2006, 10, 25) |
|---|
| | 2056 | >>> f.clean('2006-10-25') |
|---|
| | 2057 | datetime.date(2006, 10, 25) |
|---|
| | 2058 | >>> f.clean('25/10/2006') |
|---|
| | 2059 | datetime.date(2006, 10, 25) |
|---|
| | 2060 | >>> f.clean('25/10/06') |
|---|
| | 2061 | datetime.date(2006, 10, 25) |
|---|
| | 2062 | >>> f.clean('Oct 25 2006') |
|---|
| | 2063 | datetime.date(2006, 10, 25) |
|---|
| | 2064 | >>> f.clean('October 25 2006') |
|---|
| | 2065 | datetime.date(2006, 10, 25) |
|---|
| | 2066 | >>> f.clean('October 25, 2006') |
|---|
| | 2067 | datetime.date(2006, 10, 25) |
|---|
| | 2068 | >>> f.clean('25 October 2006') |
|---|
| | 2069 | datetime.date(2006, 10, 25) |
|---|
| | 2070 | >>> f.clean('25 October, 2006') |
|---|
| | 2071 | datetime.date(2006, 10, 25) |
|---|
| | 2072 | >>> f.clean('2006-4-31') |
|---|
| | 2073 | Traceback (most recent call last): |
|---|
| | 2074 | ... |
|---|
| | 2075 | ValidationError: [u'Enter a valid date.'] |
|---|
| | 2076 | >>> f.clean('200a-10-25') |
|---|
| | 2077 | Traceback (most recent call last): |
|---|
| | 2078 | ... |
|---|
| | 2079 | ValidationError: [u'Enter a valid date.'] |
|---|
| | 2080 | >>> f.clean('10/25/06') |
|---|
| | 2081 | Traceback (most recent call last): |
|---|
| | 2082 | ... |
|---|
| | 2083 | ValidationError: [u'Enter a valid date.'] |
|---|
| | 2084 | >>> f.clean(None) |
|---|
| | 2085 | Traceback (most recent call last): |
|---|
| | 2086 | ... |
|---|
| | 2087 | ValidationError: [u'This field is required.'] |
|---|
| | 2088 | |
|---|
| | 2089 | >>> f = DateField(required=False) |
|---|
| | 2090 | >>> f.clean(None) |
|---|
| | 2091 | >>> repr(f.clean(None)) |
|---|
| | 2092 | 'None' |
|---|
| | 2093 | >>> f.clean('') |
|---|
| | 2094 | >>> repr(f.clean('')) |
|---|
| | 2095 | 'None' |
|---|
| | 2096 | |
|---|
| | 2097 | DateField accepts an optional input_formats parameter: |
|---|
| | 2098 | >>> f = DateField(input_formats=['%Y %m %d']) |
|---|
| | 2099 | >>> f.clean(datetime.date(2006, 10, 25)) |
|---|
| | 2100 | datetime.date(2006, 10, 25) |
|---|
| | 2101 | >>> f.clean(datetime.datetime(2006, 10, 25, 14, 30)) |
|---|
| | 2102 | datetime.date(2006, 10, 25) |
|---|
| | 2103 | >>> f.clean('2006 10 25') |
|---|
| | 2104 | datetime.date(2006, 10, 25) |
|---|
| | 2105 | |
|---|
| | 2106 | The input_formats parameter overrides all default input formats, |
|---|
| | 2107 | so the default formats won't work unless you specify them: |
|---|
| | 2108 | >>> f.clean('2006-10-25') |
|---|
| | 2109 | Traceback (most recent call last): |
|---|
| | 2110 | ... |
|---|
| | 2111 | ValidationError: [u'Enter a valid date.'] |
|---|
| | 2112 | >>> f.clean('25/10/2006') |
|---|
| | 2113 | Traceback (most recent call last): |
|---|
| | 2114 | ... |
|---|
| | 2115 | ValidationError: [u'Enter a valid date.'] |
|---|
| | 2116 | >>> f.clean('25/10/06') |
|---|
| | 2117 | Traceback (most recent call last): |
|---|
| | 2118 | ... |
|---|
| | 2119 | ValidationError: [u'Enter a valid date.'] |
|---|
| | 2120 | |
|---|
| | 2121 | ## Generic DateTimeField ###################################################### |
|---|
| | 2122 | |
|---|
| | 2123 | A DateField that uses generic dd/mm/yy dates instead of mm/dd/yy where |
|---|
| | 2124 | appropriate. |
|---|
| | 2125 | |
|---|
| | 2126 | >>> import datetime |
|---|
| | 2127 | >>> f = DateTimeField() |
|---|
| | 2128 | >>> f.clean(datetime.date(2006, 10, 25)) |
|---|
| | 2129 | datetime.datetime(2006, 10, 25, 0, 0) |
|---|
| | 2130 | >>> f.clean(datetime.datetime(2006, 10, 25, 14, 30)) |
|---|
| | 2131 | datetime.datetime(2006, 10, 25, 14, 30) |
|---|
| | 2132 | >>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59)) |
|---|
| | 2133 | datetime.datetime(2006, 10, 25, 14, 30, 59) |
|---|
| | 2134 | >>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59, 200)) |
|---|
| | 2135 | datetime.datetime(2006, 10, 25, 14, 30, 59, 200) |
|---|
| | 2136 | >>> f.clean('2006-10-25 14:30:45') |
|---|
| | 2137 | datetime.datetime(2006, 10, 25, 14, 30, 45) |
|---|
| | 2138 | >>> f.clean('2006-10-25 14:30:00') |
|---|
| | 2139 | datetime.datetime(2006, 10, 25, 14, 30) |
|---|
| | 2140 | >>> f.clean('2006-10-25 14:30') |
|---|
| | 2141 | datetime.datetime(2006, 10, 25, 14, 30) |
|---|
| | 2142 | >>> f.clean('2006-10-25') |
|---|
| | 2143 | datetime.datetime(2006, 10, 25, 0, 0) |
|---|
| | 2144 | >>> f.clean('25/10/2006 14:30:45') |
|---|
| | 2145 | datetime.datetime(2006, 10, 25, 14, 30, 45) |
|---|
| | 2146 | >>> f.clean('25/10/2006 14:30:00') |
|---|
| | 2147 | datetime.datetime(2006, 10, 25, 14, 30) |
|---|
| | 2148 | >>> f.clean('25/10/2006 14:30') |
|---|
| | 2149 | datetime.datetime(2006, 10, 25, 14, 30) |
|---|
| | 2150 | >>> f.clean('25/10/2006') |
|---|
| | 2151 | datetime.datetime(2006, 10, 25, 0, 0) |
|---|
| | 2152 | >>> f.clean('25/10/06 14:30:45') |
|---|
| | 2153 | datetime.datetime(2006, 10, 25, 14, 30, 45) |
|---|
| | 2154 | >>> f.clean('25/10/06 14:30:00') |
|---|
| | 2155 | datetime.datetime(2006, 10, 25, 14, 30) |
|---|
| | 2156 | >>> f.clean('25/10/06 14:30') |
|---|
| | 2157 | datetime.datetime(2006, 10, 25, 14, 30) |
|---|
| | 2158 | >>> f.clean('25/10/06') |
|---|
| | 2159 | datetime.datetime(2006, 10, 25, 0, 0) |
|---|
| | 2160 | >>> f.clean('hello') |
|---|
| | 2161 | Traceback (most recent call last): |
|---|
| | 2162 | ... |
|---|
| | 2163 | ValidationError: [u'Enter a valid date/time.'] |
|---|
| | 2164 | >>> f.clean('2006-10-25 4:30 p.m.') |
|---|
| | 2165 | Traceback (most recent call last): |
|---|
| | 2166 | ... |
|---|
| | 2167 | ValidationError: [u'Enter a valid date/time.'] |
|---|
| | 2168 | |
|---|
| | 2169 | DateField accepts an optional input_formats parameter: |
|---|
| | 2170 | >>> f = DateTimeField(input_formats=['%Y %m %d %I:%M %p']) |
|---|
| | 2171 | >>> f.clean(datetime.date(2006, 10, 25)) |
|---|
| | 2172 | datetime.datetime(2006, 10, 25, 0, 0) |
|---|
| | 2173 | >>> f.clean(datetime.datetime(2006, 10, 25, 14, 30)) |
|---|
| | 2174 | datetime.datetime(2006, 10, 25, 14, 30) |
|---|
| | 2175 | >>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59)) |
|---|
| | 2176 | datetime.datetime(2006, 10, 25, 14, 30, 59) |
|---|
| | 2177 | >>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59, 200)) |
|---|
| | 2178 | datetime.datetime(2006, 10, 25, 14, 30, 59, 200) |
|---|
| | 2179 | >>> f.clean('2006 10 25 2:30 PM') |
|---|
| | 2180 | datetime.datetime(2006, 10, 25, 14, 30) |
|---|
| | 2181 | |
|---|
| | 2182 | The input_formats parameter overrides all default input formats, |
|---|
| | 2183 | so the default formats won't work unless you specify them: |
|---|
| | 2184 | >>> f.clean('2006-10-25 14:30:45') |
|---|
| | 2185 | Traceback (most recent call last): |
|---|
| | 2186 | ... |
|---|
| | 2187 | ValidationError: [u'Enter a valid date/time.'] |
|---|
| | 2188 | |
|---|
| | 2189 | >>> f = DateTimeField(required=False) |
|---|
| | 2190 | >>> f.clean(None) |
|---|
| | 2191 | >>> repr(f.clean(None)) |
|---|
| | 2192 | 'None' |
|---|
| | 2193 | >>> f.clean('') |
|---|
| | 2194 | >>> repr(f.clean('')) |
|---|
| | 2195 | 'None' |
|---|
| | 2196 | |
|---|