모델에 정수 필드가 있습니다. 이 필드의 값의 의미는 "1.1.1970 이후의 일"입니다. 따라서 날짜를 쉽게 선택할 수 있도록 AdminDateWidget
을 사용하는 날짜로 관리 인터페이스에 표시하고 싶습니다. 내가 다 괜찮 관리자 날짜를 표시하고있을 때Django에서 사용자 정의 값을 가진 사용자 정의 위젯
class LdapUserAdminForm(forms.ModelForm):
class Meta:
widgets = {
'shadow_expire': ExpireWidget
}
:
class ExpireWidget(AdminDateWidget):
def render(self, name, value, attrs=None):
if isinstance(value, (int, long)):
value = datetime.date(1970, 1, 1) + datetime.timedelta(value)
return super(ExpireWidget, self).render(name, value, attrs)
그리고 다음 코드 admin.py
에서 :
내 유일한 생각은 지금까지 정수를 번역 할 수있는 새로운 위젯을 만드는 것입니다 ,하지만 그것을 저장하기 전에 날짜를 정수로 변환해야합니다. clean_field_name
함수를 사용하여 달성 할 수 있다고 생각했지만 clean_field_name
(일부는 clean()
입니까?) 전에 유효성 검사가 수행되고 정수 값을 입력해야한다는 오류가 발생합니다.
유효성 검사 전에 날짜를 int로 어떻게 변환해야합니까?