2013-07-12 2 views
2

두 개의 외래 키 필드에서 null을 허용하고 싶습니다.장고의 두 필드에 대한 제약

그러나 두 필드는 동시에 null이 아니어야합니다.
사실 언제든지 정확히 하나를 설정해야합니다.

어떻게 표현할 수 있습니까?

두 테이블 외래 키 참조가 동일하지 않습니다.

답변

1

모델 필드에 무언가를 추가하여이를 수행 할 수 없습니다. 이 논리를 save()에 넣어야합니다.

class MyModel(models.Model): 
    fk1 = models.ForeignKey(Some, null=True) 
    fk2 = models.ForeignKey(Other, null=True) 

    def save(self, *args, **kwargs): 
     if not fk1 and not fk2: 
      raise Exception("You can't leave both fields as null") 
     super(self, MyModel).save(*args, **kwargs) 
관련 문제