2013-05-20 3 views
0

사용자가 드롭 다운 메뉴에서 외래 키를 선택할 수있는 양식을 작성하려고합니다. 그러나, 외래 값을 로그인 한 사용자와 관련된 값으로 제한하는 방법을 찾지 못하는 것 같습니다. 예를 들어사용자 값의 ForeignKey 선택 만 허용

,

class Site(models.Model): 
    trip = models.ForeignKey(Trip) 
    user = models.ForeignKey(User) 

I 템플릿에 ModelForm 전달

Models.py이 드롭 다운리스트는 ALL 트립 값으로 생성된다. 특정 로그인 한 사용자의 출장 값만 포함하도록 드롭 다운 목록을 얻는 방법은 무엇입니까?

답변

3

이 작업을 수행 할 수 있습니다

class SiteForm(ModelForm): 
    class Meta: 
     model = Site 

    def __init__(self, *args, **kwargs): 
     user = kwargs.pop('user') 
     super(SiteForm, self).__init__(*args, **kwargs) 
     self.fields['trip'].queryset = Trip.objects.filter(id__in=user.site_set.values_list(trip, flat=True)) 

및 뷰에

,

form = SiteForm(user=request.user) 
내가 오류를 받고 있어요
+0

이 – bcoop713

+0

변화' "전역 이름 '여행'정의되지 않은" 'trip'' 지정한 적절한 필드 이름으로 – karthikr