문제

다른 [연관된] 필드가 특정 값을 가질 때 의무적 인 필드를 무인 필드를 어떻게 만들 수 있습니까?

다음 모델이 있다고 가정 해 봅시다.

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

http://docs.djangoproject.com/en/dev/ref/ref/forms/validation/#cleaning-and-validating-fields-t that-depend-on-en-each-other

다른 팁

FOO_Barr를 Blank = True로 설정 한 다음 관리자 모델에 대한 고유 한 양식 및 사용자 정의 검증을 구현하는 문제 일 뿐이라고 생각합니다. 문서 의이 부분을 참조하십시오. 관리자에게 사용자 정의 검증 추가

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top