0002-drf-remove-obsolete-NullBooleanField-serializer-fiel.patch
src/authentic2/attribute_kinds.py | ||
---|---|---|
329 | 329 |
'field_class': forms.BooleanField, |
330 | 330 |
'serialize': lambda x: str(int(bool(x))), |
331 | 331 |
'deserialize': lambda x: bool(int(x)), |
332 |
'rest_framework_field_class': serializers.NullBooleanField, |
|
332 |
'rest_framework_field_class': serializers.BooleanField, |
|
333 |
'rest_framework_field_kwargs': { |
|
334 |
'allow_null': True, |
|
335 |
}, |
|
333 | 336 |
'html_value': lambda attribute, value: _('True') if value else _('False'), |
334 | 337 |
}, |
335 | 338 |
{ |
src/authentic2/models.py | ||
---|---|---|
205 | 205 |
} |
206 | 206 |
) |
207 | 207 |
if not self.required: |
208 |
# setting an attribute to null will delete it |
|
209 |
# NullBooleanField and BooleanField does not support allow_null |
|
210 |
if field_class is serializers.BooleanField: |
|
211 |
field_class = serializers.NullBooleanField |
|
212 |
elif field_class is not serializers.NullBooleanField: |
|
213 |
base_kwargs['allow_null'] = True |
|
208 |
base_kwargs['allow_null'] = True |
|
214 | 209 |
# if not stated otherwise by the definition of the kind, string alike fields |
215 | 210 |
# accept blank values when not required |
216 | 211 |
if issubclass(field_class, serializers.CharField) and 'allow_blank' not in base_kwargs: |
... | ... | |
221 | 216 |
base_kwargs['allow_blank'] = False |
222 | 217 |
elif issubclass(field_class, DateRestField): |
223 | 218 |
base_kwargs['allow_blank'] = False |
219 |
elif issubclass(field_class, serializers.BooleanField): |
|
220 |
base_kwargs['allow_null'] = False |
|
224 | 221 | |
225 | 222 |
base_kwargs.update(kwargs) |
226 | 223 |
return field_class(**base_kwargs) |
227 |
- |