2013-07-20 2 views
0

나는 쿼리를 수행하여 동적으로 CHOICES을 얻을 수있는 매우 간단한 질문이 있지만 장고에서 더 많은 "기본"방법이 있는지 궁금해하고있었습니다.장고; 하위 범주를 특정 주 범주로 제한

asume this;

class Item(models.Model): 

    name = name = models.CharField(max_length = 75) 
    sub_category = models.ForeignKey('ItemSubcategory') 

이것은 계층의 예입니다.

  • 카테고리 : 식품
    • 하위 카테고리 : 빵
      • 항목 : 타이거 빵
      • 항목 : 브라운 빵
      • 항목 : 화이트 빵

이 논리는 괜찮습니다. 그러나 다른 어떤 모델의 경우 이걸 사용하고 싶습니다.

class Item(models.Model): 

    name = name = models.CharField(max_length = 75) 
    sub_category = models.ForeignKey('ItemSubcategory', limit_to=('ItemCategory', 'Food')) 

그래서 드롭 다운/I는 음식 하위 카테고리를 표시 할 때 사용하는 필터가 아닌 다른 범주에서 다른 모든 하위 카테고리를 제한하는 것입니다.

class Item(models.Model): 

    name = name = models.CharField(max_length = 75) 
    sub_category = models.ForeignKey(
     'ItemSubcategory', 
     limit_choices_to={'ItemCategory': 'Food'} 
    ) 

https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to 그냥 당신에게 기본 아이디어를 줄 수 :

답변

1

당신은 limit_choices_to 인수를 사용할 수 있습니다.

+0

거의 완성되었습니다. 'limit_choices_to = { 'category__name': '음식'}'. 힌트를 주셔서 감사합니다 :) –

관련 문제