让Django SplitDateTimeField接受空时间字段的更好方法?

2024-05-01 21:58:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望SplitDateField的日期部分是必需的,但是时间部分(如果留空)默认为某个值(“00:00:00”)。在

现在,我把它移植到Fields clean()方法中。有更好的方法吗?一种更像“Django”的方式?在

现在看起来像这样(在表单.py)公司名称:

def mp_clean(self, value):
    # time is in value[1] of a split-datetime field:
    field_value = value[1]
    if field_value in self.empty_values:
        value[1] = '00:00:00'
    return self.mp_original_clean(value)

class MyModelAdminForm(forms.ModelForm):

def __init__(self, *args, **kwargs):        
    super(MyModelAdminForm, self).__init__(*args, **kwargs)
    that_field = self.fields['that_field']


    if isinstance(that_field,forms.SplitDateTimeField):
        that_field.mp_original_clean = that_field.clean
        that_field.clean = types.MethodType(mp_clean, that_field)

Tags: 方法inselfcleanfieldifthatinit