2012-01-16 2 views
1

사용자 정의 함수를 통해 필드의 고유성을 테스트하는 방법이 있습니까?Django - 모델 필드의 동적 고유 테스트

뭔가 같은 :

def custom_unique_test(instance): 
    return global_test_results(instance) 

class Category(models.Model) 
    slug = models.SlugField(unique=custom_unique_test()) 

감사

답변

2

을 나는 사용 사례는 만 더 큰 그룹과 어떤 관계 내에서 고유성 걱정이다 있으리라 믿고있어 - 예를 들어, 당신은 세계적으로 필요하지 않습니다 고유 한 슬러그이므로 unique=True은 "너무 독특합니다"CategoryGroup 안에 각 Category에 대해 고유 한 슬러그가 필요합니다.

Category.save()을 재정의하는 것이 좋습니다. self.pk을 확인하여 이것이 삽입 또는 업데이트인지 확인하고, 삽입 된 경우 super(Category, self).save(*args, **kwargs)을 호출하기 전에 맞춤식 고유 체크 및 슬러그 생성 코드를 호출 할 수 있습니다.

+0

굉장! 그게 내가 필요한 것입니다. 고마워요. – thyagx

관련 문제