2010-12-08 2 views
0

내 모델은 다음과 같다 :

class Manufacturers(models.Model): 
    name = models.CharField() 

class Phones(models.Model): 
    manufacturer = models.ForeignKey(Manufacturers) 
    name = models.CharField() 

class Prices(models.Model): 
    phone = models.ForeignKey(Phones) 
    price = models.DecimalFeild() 

나는

내 문제가있는 admin.py에서 그들을 등록 : 내가 추가 할 때, 장고의 관리자 인터페이스에서 가격, 드롭 다운 목록에서 전화를 선택할 수 있습니다.하지만 너무 많은 전화가 있습니다. 따라서 제조업체를 먼저 선택하고 제조업체의 전화에서 전화를 선택하고 싶습니다. 내가 어떻게 이걸 만들 수 있니? 대단히 감사합니다.

답변

1

이 용어는 "chained select menus"입니다.

숫자는 implementations in django입니다. 유용하다고 생각되는 도구는 django-smart-selects입니다. 장고 - 스마트 선택을 사용하여

, 이것은 당신이 당신의 모델을 작성합니다 방법입니다

당신이 최선의 방식으로이를 구현하는 경우 말했다 모두가 궁금해
class Manufacturers(models.Model): 
    name = models.CharField() 

class Phones(models.Model): 
    manufacturer = models.ForeignKey(Manufacturers) 
    name = models.CharField() 

class Prices(models.Model): 
    phone = ChainedForeignKey(
     Phone, 
     chained_field="manufacturer", 
     chained_model_field="manufacturer", 
     show_all=False, 
     auto_choose=True 
    ) 
    price = models.DecimalField() 

.

각 전화의 관리 양식에 가격이 표시되는 것이 더 나을 수 있습니다. 따라서 가격 기록을 만들고 드롭 다운에서 전화를 선택하는 대신 해당 전화의 기록에 들어가 가격 기록을 추가 할 수 있습니다. InlineModelAdmin에 대한 django의 설명서를 참조하십시오.

+0

대단히 감사합니다! – Peter

+0

Django-smart-choices는 구현하기 쉽고 강력합니다 !!! – Atma