2013-05-28 4 views
4

죄송합니다.이 질문을 받았지만 모든 곳을 보았습니다. 내 머리 속에서 찰칵 소리가 나는 부분을 찾을 수없는 것 같습니다.Django Admin의 ForeignKey 또는 ManyToMany 필드 검색

이와 같은 구조를 가진 경우 admin에서 ForeignKeyManyToMany 필드 관계를 검색 할 수있게 할 수 있습니까? 따라서 가격 정보를 입력 할 때 드롭 다운 상자에서 수천 대의 차량을 검색하는 대신 차량 제조업체, 유형 및 이름을 검색 할 수 있습니까? 내가 이상적으로하고 싶으면 무엇

class Manufacturer(models.Model): 
    manufacturer = models.CharField(max_length=100) 

class VehicleType(models.Model): 
    vehicle_type = models.CharField(max_length=100) 

class VehicleInfo(models.Model): 
    manufacturer = models.ForeignKey('Manufacturer') 
    vehicle_type = models.ForeignKey('VehicleType') 
    vehicle_name = models.CharField(max_length=200) 

class RandomWebsitePriceInfo(models.Model): 
    vehicle_info = models.ManyToManyField('VehicleInfo') 
    website_price = models.FloatField() 

은에 그때 제조업체를 선택한 것이다 다음 차량 유형에 상자가 해당 제조업체에서 사용 가능한 차량이 될 것입니다 어디에 같은 상자 드롭 다운을 통해 아래의 관계에 따라 중 하나입니다 차량 정보 상자는 해당 제조업체와 해당 유형에 의해 만들어진 모든 차량이됩니다.

차량 정보를 검색 할 수있게 만들어 차량 모델에 넣으면 올 수 있습니다.

나는 raw_input과 검색 필드를 들여다 보았지만 알아낼 수는 없습니다.

감사 브라이언

답변

1

장고 상자에서이 작업을 수행하지 않지만, 추가 자바 스크립트를 사용하는 프로젝트의 몇 가지 있습니다.

https://github.com/digi604/django-smart-selects 내가보기에 주된 하나입니다.

+0

고맙습니다. 그것은 위대한 일을하는 것 같습니다. –

+0

드릴 다운은 기본적으로 지원되지 않지만 외래 키 검색은 지원됩니다. –

2

당신이 당신의 admin.py에서 VehicleInfo 관리자 페이지에있는 가정, 추가 시도 :

search_fields = ['vehicle_name' , 'vehicle_type__vehicle_type' , 'manufacturer__manufaturer' ] 

차량 모델, 해당 필드에 vehicle_name 검색에 응시.

지금 manufacturer__manufacturer는 제조업체에서 검색합니다. 두 번째 밑줄은 동일한 object의 필드가 아니지만 조회 할 foreign key 필드이므로 첫 번째 제조업체는 제조업체 모델을 가리 킵니다. 두 번째 제조업체는 제조업체 필드를 찾으려고합니다 (model).

+1

이것은 받아 들여진 대답이어야합니다 :) – R4chi7