Django Admin : 의무적 인 필드를 동적으로 만들지 않습니다
문제
다른 [연관된] 필드가 특정 값을 가질 때 의무적 인 필드를 무인 필드를 어떻게 만들 수 있습니까?
다음 모델이 있다고 가정 해 봅시다.
class foo(models.Model):
bar = models.CharField(max_length=200)
foo_date = models.DateTimeField()
저장하고 바에는 특정 값이 포함되어 있으면 foo_date가 무지병이되지 않기를 바랍니다. 어떻게 달성합니까? 감사.
해결책
T.stone이 옳습니다. 이것이 모델 양식으로 수행하는 방법입니다.
class foo(models.Model):
bar = models.CharField(max_length=200)
foo_date = models.DateTimeField()
class ClientAdmin( MyModelAdmin ):
form = FooModelForm
class FooModelForm( forms.ModelForm ):
def clean(self):
cleaned_data = self.cleaned_data
if cleaned_data.get("bar") == 'some_val' and not cleaned_data.get('foo_date'):
msg = 'Field Foo Date is mandatory when bar is some_val'
self._errors[field] = ErrorList([msg])
del cleaned_data[field]
return cleaned_data
다른 팁
FOO_Barr를 Blank = True로 설정 한 다음 관리자 모델에 대한 고유 한 양식 및 사용자 정의 검증을 구현하는 문제 일 뿐이라고 생각합니다. 문서 의이 부분을 참조하십시오. 관리자에게 사용자 정의 검증 추가
제휴하지 않습니다 StackOverflow