2012-08-14 4 views
0

Welcome,ForeignKey에 대한 가능한 선택 항목

ForeignKey와 관련된 선택을 제한하는 데 문제가 있습니다. 내 코드의 (models.py) 조각을 부착하고있어 아래 :

class Car(models.Model): 
    name = models.CharField(max_length=50) 
    .... 

class Driver(models.Model): 
    name = models.CharField(max_length=50) 
    car = models.ForeignKey(Car) 
    .... 

class CarForm(ModelForm): 
    class Meta: 
     model = Car 

class DriverForm(ModelForm): 
    def __init__(self, *args, **kwargs): 
     super (DriverForm,self).__init__(*args, **kwargs) 
     self.fileds['car'].queryset = Car.objects.filter(???_1_???)  
    class Meta: 
     model = Driver 

아무도 나에게 정의하는 방법을 몇 가지 조언을 줄 수를 ??? ??? 사용 가능한 Car 객체를 어떤 드라이버에도 할당되지 않은 객체로만 제한 하시겠습니까? 모든

답변

1

첫째, 각 Car 항상 단일 Driver을 가질 수 있다면 OneToOneField보다는 ForeignKeyCarDriver 사이의 관계를 변경하는 것이 좋습니다.

from django.db.models import Count 
self.fields['car'].queryset = Car.objects.annotate(num_drivers=Count('driver')).filter(num_drivers=0) 
+0

감사 마이클 : 당신은 단지 형태의 선택을 제한하려는 경우

그러나, 당신의 검색어는 같은 것을 할 필요가있다. 이제 작동합니다. – Grzegorz